Originariamente inviato da nourdine
io pensavo che i caratteri speciali dovessero essere preceduti dall'escape per essere usati nelle espressioni regolari. Invece ho trovato che se si fa:

if(eregi("^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$", $stringa
Mettila così

if(eregi("/ ^[a-zA-Z0-9\ ._-]+@[a-zA-Z0-9\ ._-]+\.([a-zA-Z]{2,4})$/ ", $stringa))