No comprendo, en estos ejemplos me funciona bien:
Código PHP:
<?php
$nombre = 'Nicolás';
if( !eregi("^[a-zA-ZáéíóúAÉÍÓÚÑñ]+$", $nombre) ) echo 'Su nombre no es correcto'; #No entra, pasa OK
$nombre = 'Nicolás';
if( !eregi("^[a-zA-ZáéíóúAÉÍÓÚÑñ]+$", $nombre) ) echo 'Su nombre no es correcto'; #No entra, pasa OK
$nombre = 'Nicolás_9';
if( !eregi("^[a-zA-ZáéíóúAÉÍÓÚÑñ]+$", $nombre) ) echo 'Su nombre no es correcto'; #Dará "Su nombre no es correcto"
?>
Con que ejemplo no te funciona y si debería? contanos un poco más con ejemplos donde tenes el problema.