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...