Muchísimas gracias andresdzphp, eres mi idolo jaja, es justo lo que necesitaba, solo que con unos ligeros cambios que siguiendo la intuición he podido hacer, para que me acepte el subpatrón varias veces, y me acepte letras sin signos entre medio, por ejemplo:
Patrón modificado:
Código PHP:
Ver original/^(?=^(\w+[.\-+_]?\w+)+$)[\w.+_\-]{3,63}$/
Solo queda una cosita, a ver si puedes explicarme como funciona lo que me has puesto, que no lo entiendo del todo bien, te digo como mas o menos lo llego a entender yo y me dices si es así o me corriges si no:
Con esta forma:
Le dices que busque hacía delante con (?= ) , de forma que encuentre dicho subpatrón, si no lo encuentra devolverá 0, y ahora con esta parte que es la que no entiendo bien:
Con esta ultima parte, le dices que los caracteres contenidos en el subpatrón, en "(?=)" que son letras y dígitos, el punto, el mas, el guión y el guión bajo, sean de 3 a 63, es decir, estas haciendo, una referencia mediante los corchetes, a los caracteres contenidos en el subpatrón anterior, ¿no?
Un saludo y muchísimas gracias por todo.