Hola amigo que tal,
veras sucede lo siguiente:
_______________________________
1.- Que sucede cuando imprimes en el navegador una cadena letras acentuadas?
Que es lo que puedes ver en el navegador? Son las mismas vocales acentuadas que has colocado en el echo?
Entonces tu expresión regular esta intentando comparar una cadena de texto cuya entrada es de vocales acentuadas pero su salida es de otros símbolos, esta es una de las 2 razones por la que tu expresión regular no funciona.
Solución: Podrías utilizar utf8_decode antes de comparar con preg_match.
---------------------------------------
2.- La otra razón, es en la expresión regular. Escapar las vocales acentuadas no es del todo bueno hay otra solución un poco más copada.
Utiliza la expresión hexadecimal de las vocales acentuadas.
á: \xe1
é: \xe9
í: \xed
ó: \xf3
ú: \xfa
Verifícalas en alguna tabla puede que ya no me acuerde bien y me haya equivocado.
En fin.
Saludos.