From c7be550583855d8e7c0152fd8b45d51265846134 Mon Sep 17 00:00:00 2001 From: ph10 Date: Tue, 24 Mar 2015 10:21:34 +0000 Subject: Fix bugs when (?!) is used as a condition. git-svn-id: svn://vcs.exim.org/pcre2/code/trunk@231 6239d852-aaf2-0410-a92c-79f79f948069 --- HACKING | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'HACKING') diff --git a/HACKING b/HACKING index 1e26d01..21edebc 100644 --- a/HACKING +++ b/HACKING @@ -210,7 +210,8 @@ These items are all just one unit long OP_THEN ) OP_ASSERT_ACCEPT is used when (*ACCEPT) is encountered within an assertion. -This ends the assertion, not the entire pattern match. +This ends the assertion, not the entire pattern match. The assertion (?!) is +always optimized to OP_FAIL. Backtracking control verbs with optional data @@ -528,6 +529,10 @@ immediately before the assertion. It is also possible to insert a manual callout at this point. Only assertion conditions may have callouts preceding the condition. +A condition that is the negative assertion (?!) is optimized to OP_FAIL in all +parts of the pattern, so this is another opcode that may appear as a condition. +It is treated the same as OP_FALSE. + Recursion --------- -- cgit v1.2.1