58 |
pattern, with a new opcode that causes them to be skipped at execution |
pattern, with a new opcode that causes them to be skipped at execution |
59 |
time. |
time. |
60 |
|
|
61 |
13. Added the PCRE_JAVASCRIPT_COMPAT option. This currently does two things: |
13. Added the PCRE_JAVASCRIPT_COMPAT option. This makes the following changes |
62 |
|
to the way PCRE behaves: |
63 |
|
|
64 |
(a) A lone ] character is dis-allowed (Perl treats it as data). |
(a) A lone ] character is dis-allowed (Perl treats it as data). |
65 |
|
|
66 |
(b) A back reference to an unmatched subpattern matches an empty string |
(b) A back reference to an unmatched subpattern matches an empty string |
67 |
(Perl fails the current match path). |
(Perl fails the current match path). |
68 |
|
|
69 |
|
(c) A data ] in a character class must be notated as \] because if the |
70 |
|
first data character in a class is ], it defines an empty class. (In |
71 |
|
Perl it is not possible to have an empty class.) The empty class [] |
72 |
|
never matches; it forces failure and is equivalent to (*FAIL) or (?!). |
73 |
|
The negative empty class [^] matches any one character, independently |
74 |
|
of the DOTALL setting. |
75 |
|
|
76 |
14. A pattern such as /(?2)[]a()b](abc)/ which had a forward reference to a |
14. A pattern such as /(?2)[]a()b](abc)/ which had a forward reference to a |
77 |
non-existent subpattern following a character class starting with ']' and |
non-existent subpattern following a character class starting with ']' and |
78 |
containing () gave an internal compiling error instead of "reference to |
containing () gave an internal compiling error instead of "reference to |
81 |
existencd of the subpattern, it was treating the data ']' as terminating |
existencd of the subpattern, it was treating the data ']' as terminating |
82 |
the class, so got the count wrong. When actually compiling, the reference |
the class, so got the count wrong. When actually compiling, the reference |
83 |
was subsequently set up correctly.) |
was subsequently set up correctly.) |
84 |
|
|
85 |
|
15. The "always fail" assertion (?!) is optimzed to (*FAIL) by pcre_compile; |
86 |
|
it was being rejected as not supported by pcre_dfa_exec(), even though |
87 |
|
other assertions are supported. I have made pcre_dfa_exec() support |
88 |
|
(*FAIL). |
89 |
|
|
90 |
|
|
91 |
Version 7.6 28-Jan-08 |
Version 7.6 28-Jan-08 |