con le espressioni regolari sei sulla strada giusta, ti passo un codice come se ne trovano tanti facendo una semplice ricerca.

Codice PHP:
if( !eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*"
   
."@([a-z0-9]+([\.-][a-z0-9]{1,})+)*$",
   
$indirizzo_email$regs) ) echo "Indirizzo email errato."