summaryrefslogtreecommitdiff
path: root/HACKING
diff options
context:
space:
mode:
authorph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2009-10-04 09:27:20 +0000
committerph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2009-10-04 09:27:20 +0000
commit7f1b753dfecb0db660812f00e667abaca6252e28 (patch)
treeaa5a0541136555a21f47051e4c78c591b969f4fc /HACKING
parentff6ca31f93c0b34a945871afc954a0aa54800137 (diff)
downloadpcre-7f1b753dfecb0db660812f00e667abaca6252e28.tar.gz
Documentation update.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@460 2f5784b3-3f2a-0410-8824-cb99058d5e15
Diffstat (limited to 'HACKING')
-rw-r--r--HACKING15
1 files changed, 9 insertions, 6 deletions
diff --git a/HACKING b/HACKING
index 623fe5b..8c6a42d 100644
--- a/HACKING
+++ b/HACKING
@@ -373,12 +373,15 @@ These are like other subpatterns, but they start with the opcode OP_COND, or
OP_SCOND for one that might match an empty string in an unbounded repeat. If
the condition is a back reference, this is stored at the start of the
subpattern using the opcode OP_CREF followed by two bytes containing the
-reference number. If the condition is "in recursion" (coded as "(?(R)"), or "in
-recursion of group x" (coded as "(?(Rx)"), the group number is stored at the
-start of the subpattern using the opcode OP_RREF, and a value of zero for "the
-whole pattern". For a DEFINE condition, just the single byte OP_DEF is used (it
-has no associated data). Otherwise, a conditional subpattern always starts with
-one of the assertions.
+reference number. OP_NCREF is used instead if the reference was generated by
+name (so that the runtime code knows to check for duplicate names).
+
+If the condition is "in recursion" (coded as "(?(R)"), or "in recursion of
+group x" (coded as "(?(Rx)"), the group number is stored at the start of the
+subpattern using the opcode OP_RREF or OP_NRREF (cf OP_NCREF), and a value of
+zero for "the whole pattern". For a DEFINE condition, just the single byte
+OP_DEF is used (it has no associated data). Otherwise, a conditional subpattern
+always starts with one of the assertions.
Recursion