codice:
function checkMail( $m ) {
	// andr3a / HTML.IT
	$r = "([a-z0-9]+[\._\-]?){1,3}([a-z0-9])*";
	$r = "/(?i)^{$r}\@{$r}\.[a-z]{2,6}$/";
	return preg_match($r, $m);
}
Ho provato questa funzione!! E' ottima, ma facendo delle prove mi permetterei di far notare che:

- la regola $r applicata anke dopo il punto permette di inserire uno di questi tre caratteri [\._\-]? ed opzionalmente terminare con uno o + caretteri alfanumerici ([a-z0-9])* quindi se scrivo info@miodominio_aa_aa_.it lo accetta e penso che non sia valido.

- mi sono permesso di modificarla così :
codice:
function checkMail( $m ) {
	// andr3a / HTML.IT
	$r = "([a-z0-9]+[\._\-]?){1,3}([a-z0-9])*";
	$rdominio = "([a-z0-9]+[\._\-]?){1,3}([a-z0-9])+";
	$r = "/(?i)^{$r}\@{$rdominio}\.[a-z]{2,6}$/";
	return preg_match($r, $m);
}
Nulla a togliere a nessuno di voi che siete fantastici , ma poiche' stamane mi sono svegliato col proposito di impapare le espressioni regolari, sono praticamente impazzito nel comprendere il codice di andr3a ....

Spero di non aver offeso nessuno