# NAME \t TYPE, arg-description [num-args] [longjump-len] \t DESCRIPTION
#
#
+# run perl regen.pl after editing this file
#*Literals (33..35)
-EXACT EXACT, sv Match this string (preceded by length).
-EXACTF EXACT, sv Match this string, folded (prec. by length).
-EXACTFL EXACT, sv Match this string, folded in locale (w/len).
+EXACT EXACT, str Match this string (preceded by length).
+EXACTF EXACT, str Match this string, folded (prec. by length).
+EXACTFL EXACT, str Match this string, folded in locale (w/len).
#*Do nothing types (36..37)
PLUS PLUS, node Match this (simple) thing 1 or more times.
CURLY CURLY, sv 2 Match this simple thing {n,m} times.
-CURLYN CURLY, no 2 Match next-after-this simple thing
-# {n,m} times, set parenths.
-CURLYM CURLY, no 2 Match this medium-complex thing {n,m} times.
+CURLYN CURLY, no 2 Capture next-after-this simple thing
+CURLYM CURLY, no 2 Capture this medium-complex thing {n,m} times.
CURLYX CURLY, sv 2 Match this complex thing {n,m} times.
# This terminator creates a loop structure for CURLYX
# inline charclass data (ascii only), the 'C' store it in the structure.
# NOTE: the relative order of the TRIE-like regops is signifigant
-TRIE TRIE, trie 1 Match many EXACT(FL?)? at once. flags==type
-TRIEC TRIE, trie charclass Same as TRIE, but with embedded charclass data
+TRIE TRIE, trie 1 Match many EXACT(FL?)? at once. flags==type
+TRIEC TRIE,trie charclass Same as TRIE, but with embedded charclass data
# For start classes, contains an added fail table.
-AHOCORASICK TRIE, trie 1 Aho Corasick stclass. flags==type
-AHOCORASICKC TRIE, trie charclass Same as AHOCORASICK, but with embedded charclass data
+AHOCORASICK TRIE, trie 1 Aho Corasick stclass. flags==type
+AHOCORASICKC TRIE,trie charclass Same as AHOCORASICK, but with embedded charclass data
+#*Regex Subroutines (65..66)
+GOSUB GOSUB, num/ofs 2L recurse to paren arg1 at (signed) ofs arg2
+GOSTART GOSTART, no recurse to start of pattern
+#*Named references (67..69)
+NREF REF, no-sv 1 Match some already matched string
+NREFF REF, no-sv 1 Match already matched string, folded
+NREFFL REF, no-sv 1 Match already matched string, folded in loc.
+
+
+#*Special conditionals (70..72)
+NGROUPP NGROUPP, no-sv 1 Whether the group matched.
+INSUBP INSUBP, num 1 Whether we are in a specific recurse.
+DEFINEP DEFINEP, none 1 Never execute directly.
+
+#*Bactracking Verbs
+ENDLIKE ENDLIKE, none Used only for the type field of verbs
+OPFAIL ENDLIKE, none Same as (?!)
+ACCEPT ENDLIKE, parno 1 Accepts the current matched string.
+
+
+#*Verbs With Arguments
+VERB VERB, no-sv 1 Used only for the type field of verbs
+PRUNE VERB, no-sv 1 Pattern fails at this startpoint if no-backtracking through this
+MARKPOINT VERB, no-sv 1 Push the current location for rollback by cut.
+SKIP VERB, no-sv 1 On failure skip forward (to the mark) before retrying
+COMMIT VERB, no-sv 1 Pattern fails outright if backtracking through this
+CUTGROUP VERB, no-sv 1 On failure go to the next alternation in the group
+
+#*Control what to keep in $&.
+KEEPS KEEPS, no $& begins here.
# NEW STUFF ABOVE THIS LINE -- Please update counts below.
################################################################################
-#*SPECIAL REGOPS (65, 66)
+#*SPECIAL REGOPS
# This is not really a node, but an optimized away piece of a "long" node.
# To simplify debugging output, we mark it as if it were a node
#
TRIE next:FAIL
EVAL AB:FAIL
-CURLYX resume
-WHILEM resume:6
+CURLYX end:FAIL
+WHILEM A_pre,A_min,A_max,B_min,B_max:FAIL
BRANCH next:FAIL
CURLYM A,B:FAIL
IFMATCH A:FAIL
CURLY B_min_known,B_min,B_max:FAIL
-
+COMMIT next:FAIL
+MARKPOINT next:FAIL
+SKIP next:FAIL
+CUTGROUP next:FAIL
+KEEPS next:FAIL