Prova questo:

codice:
^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$
Ti consiglio di cercare su internet un programma chiamato The regulator, serve per ricerca espressioni regolari, può sempre tornar utile