Innanzittutto un saluto a tutti da un nuovo arrivato. :P

Mi sono da poco affacciato al mondo del php e mi sto invero appassionando. Sto studiando da un testo di Kevin Yank e dopo aver visto qualcosina riguardo le funzioni di query su SQL mi sono imbattutto nelle "Espressioni Regolari". Il mio problema sta nel fatto che ho provato a costruire un semplice script php che effettuasse un controllo di validità "grammaticale" di un ipotetico indirizzo email sfruttando per l'appunto la funzione ereg e un'espressione regolare. Fatto sta che dopo innumerevoli test il " - " (tek) sebbene sia presente nell'espressione non viene riconosciuto come valido all'interno della funzione e non capisco il perché... So che quel segno ha un valore speciale all'interno delle espressioni e so anche che bisogna utilizzare un backslash per portarlo al significato "letterale", e così ho fatto ma non funziona lo stesso...
In tutti gli altri casi (es xxx_yy.y[AT]server.it oppure xxx.y_y_y[AT]server.it) sembra funzionare.

Posto di seguito il codice: sia chiaro che è un qualcosa che ho scritto per puro spirito auto-didattico (quindi sorvolate sull'effettiva utilità o funzionalità del codice :P).

codice:
<?php  /**  * @author ggxphp  * @copyright 2009  */  
if (!isset($_POST['c'])):  ?>  



Questo script php serve per verificare la

validità di un indirizzo email tramite l'uso

delle Espressioni Regolari</p>


<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
Inserisci l'indirizzo email da verificare:
<input type="text" name="c" size="30"><input type="submit" value="Verifica"></form></p> 

<?php else:  	

$email=$_POST['c'];
$selfpage=$_SERVER['PHP_SELF'];

if (ereg('^([a-zA-Z0-9]+[a-zA-Z0-9\-_\.]*)[@]{1}([a-zA-Z0-9\-_]+)[\.]{1}([a-zA-Z]{2,4})$', $email, $req)) 
{
echo "

L'indirizzo email $email inserito E' VALIDO ed è così composto:</p>".
"

<ul>[*]Nome utente: $req[1]". 			
"[*]Server: $req[2]". 			
"[*]Dominio: $req[3][/list]</p>". 			
"Invia email
". 			
"Torna alla pagina di controllo"; 	
} else { 		
echo "

L'indirizzo email $email inserito <u>NON</u> E' VALIDO</p>". 			
"Torna alla pagina di controllo"; 	
}  
endif; 
?>