Il suffit d'aller voir la documentation de la fonction eregi ici : [fr2.php.net] et puis celle de preg_match ici [fr2.php.net], pour voir que la différence fondamentale entre les deux est la sensibilité à la casse : le i de eregi qui signifie case Insensitive Je vous laisse chercher comment rendre le pattern de preg_match insensible à la casse.
D'autre part, [a-zA-Z], n'est pas identique à /a-zA-Z/ ; / est un délimiteur pour preg_match, donc, il faut : /[a-zA-Z]/ plus quelque chose pour la non sensibilité à la casse.
Quand vous ne savez pas, aller lire les docs PHP en français sur [www.php.net]