preg_match - Cómo negar Regex
regex negative lookahead (1)
Posible duplicado:
¿Expresión regular para hacer coincidir la cadena que no contiene una palabra?
¿Cómo puedo invertir una expresión regular en JavaScript?
Digamos que tengo la expresión regular foo123
. ¿Cómo puedo unir todo lo que no es foo123 ?
Utilice lookahead negativo para esto.
(?!foo123).+
coincide con cualquier cadena excepto foo123
Si quiere hacer coincidir cadena vacía también, use (?!foo123).*
En su caso (según el comentario), la expresión regular requerida es (?!P[0-9]{1,}).+
.
Coincide con P y 123 , pero no con P123 .