codifica caratteri?

dopotutto è l' unica cosa che potrebbe cambiare cambiando hosting, e che può dipendere tranquillamente dall' hosting e tu se nn sbaglio fai un preg_match proprio su una stringa tutta testo....

p.s.:

preg_match("/[a-z]+$/i", $categoria) sarebbe già sufficente in quanto hai impostato la i (case insensitive) ma esclude caratteri speciali come ò ù ecc...