if ( !preg_match("/\p{L}[0-9 a-z A-Z,$-:. _']+$/"
estas repitiendo letras y asiendo incongruente tu regex... \pL sirve para todas las letras.. no es necesario que le vuelvas a decir de la a-z
seria algo asi
Código PHP:
if(!preg_match("/[\pL\d,$-:._']+$/" ...