Converting POSIX regex patters to PCRE is non-trivial. I had many (about 17.000) patterns stored in a DB, and found that surrounding one with delimiters (such as '/'), after quoting them, is not enough.
I've been biten by a \r that slipped into a pattern (that was supposed to be \.r and became .\r instead). Too bad in PCRE it stands for carriage-return.
AFAIK, there's no way to disable this behaviour and make PCRE more POSIX compatibile. You have to look for every single escape sequence that has no meaning in POSIX regex but has one in PCRE and remove the backslash.
Before POSIX regex are removed it would be really cool to have a function that converts a POSIX regex pattern into the equivalent PCRE one.
Introduzione
La sintassi dei pattern usati in queste funzioni assomiglia molto a Perl. L'espressione deve essere racchiusa tra delimitatori, uno slash (/), ad esempio. I delimitatori possono essere qualsiasi carattere ASCII non alfanumerico e che non rappresenta uno spazio, eccetto il backslash (\) e il byte null. Se il carattere delimitatore deve essere usato all'interno dell'espressione, deve essere preceduto da un backslash. Da PHP 4.0.4 si possono usare i delimitatori Perl (), {}, [] e <> per il matching. Vedere Sintassi dei pattern per informazioni dettagliate.
Il delimitatore finale può essere seguito da vari modificatori che modificano il matching. Vedere Modificatori dei pattern.
PHP ammette anche le espressioni regolari che utilizzano la sintassi estesa POSIX usando le Funzioni regex POSIX-extended.
Nota:
Questa estensione mantiene una cache, globale all'interno del thread, delle espressioni regolari compilate (fino a 4096).
Si deve tener conto di alcune limitazioni di PCRE. Leggere » http://www.pcre.org/pcre.txt per maggiori informazioni.
La libreria PCRE è costituita da una serie di funzioni che implementano le espressioni regolari mutuando la stessa sintassi e la stessa semantica di Perl 5, a parte qualche lieve differenza descritta di seguito. L'attuale implementazione corrisponde alla versione 5.005 di Perl.
