Y porque no prueba la función
similar_text o
soundex similiar_text
Esta función de PHP te devuelve la similitud, en tanto por ciento, de 2 frases. Lo malo es que tien un coste de cúbico, O(n^3), por lo que si la frase es muy larga puede ser una función lenta.
soundex
Esta función devuelve la fonética de una palabra. Así podrás comprobar 2 palabras que fonéticamente se parecen.
Las funciones para expresiones regulares del tipo POSIX han quedado obsoletas y en versiones futuras de PHP desaparecerán de su nucleo, por tanto debes usar funciones para expresiones regulares del tipo PCRE. Son muy parecidas entre sí, así que si sabes manejar las del tipo POSIX no te costará mucho manejar las del tipo PCRE.
Como te han explicado por ahí arriba hay muchos manuales en el foro que explican como usar las expresiones regulares. Pero... en tu código no he visto ninguna función de expresion regular, a excepcion de las 2 primeras, que pueden ser sustituidas fácilmente por una función del tipo str_replace.