Hola.
A ver si alguien me tiene la paciencia para explicarme con manzanitas unas partes de la validación:
/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/
específicamente las marcadas con

/^

([a-zA-Z0-9_.-])

+

@(([a-zA-Z0-9-])+.) ¿por qué no hay un + después del @?, y ¿por qué están anidados esos paréntesis?

+

([a-zA-Z0-9]{2,4}) ¿para qué es el {2,4}?

+$/
Gracias