Si, despues de probar un par de cosas. ya lo he conseguido.
Explico la solución por si a algun otro le fuera de ayuda.
El problema de que no aceptaba nombres compuesto, por ejemplo, jose luis, lo he resulto con cambiando el patron, los cambios han sido: poner los mismo que habia dos veces y en medio un espacio que puede o no existir. Sé que el problema se soluciona solo en parte, ya que si alguien quisiera un nombre compuesto de tres nombres tendriamos el mismo fallo, pero como no era mi caso....
Lo de quitar los espacios del principio ha sido bastante mas facil ya qu existe una funcion que lo hace. Se llama Trim(). Suponiendo que el string lo hemos almacenado en nom. Si ejecutamos nom = nom.Trim(), nos quitaria los espacios.
Gracias por la orientacion, me ha servido para razonar un par de cosillas.