# Empty rows and #-comment rows are ignored.
+# Note that the order in this file is important.
+#
+# Add new regops to the end, and do not re-order the existing ops.
+#
+
# Exit points
END END, no End of program.
SUCCEED END, no Return from a subroutine, basically.
BOL BOL, no Match "" at beginning of line.
MBOL BOL, no Same, assuming multiline.
SBOL BOL, no Same, assuming singleline.
+EOS EOL, no Match "" at end of string.
EOL EOL, no Match "" at end of line.
MEOL EOL, no Same, assuming multiline.
SEOL EOL, no Same, assuming singleline.
GPOS GPOS, no Matches where last m//g left off.
# [Special] alternatives
-ANY ANY, no Match any one character (except newline).
-SANY ANY, no Match any one character.
+REG_ANY REG_ANY, no Match any one character (except newline).
+SANY REG_ANY, no Match any one character.
+CANY REG_ANY, no Match any one byte.
ANYOF ANYOF, sv Match character in (or not in) this class.
ALNUM ALNUM, no Match any alphanumeric character
ALNUML ALNUM, no Match any alphanumeric char in locale
NSPACE NSPACE, no Match any non-whitespace character
NSPACEL NSPACE, no Match any non-whitespace char in locale
DIGIT DIGIT, no Match any numeric character
+DIGITL DIGIT, no Match any numeric character in locale
NDIGIT NDIGIT, no Match any non-numeric character
+NDIGITL NDIGIT, no Match any non-numeric character in locale
+CLUMP CLUMP, no Match any combining character sequence
# BRANCH The set of branches constituting a single choice are hooked
# together with their "next" pointers, since precedence prevents
# 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
OPTIMIZED NOTHING,off Placeholder for dump.
+
+# Trie Related (behave the same as A|LIST|OF|WORDS would)
+TRIE TRIE, trie 1 Match many EXACT(FL?)? at once. flags==type
+TRIEC TRIE, trie 1 Trie + charclass. (unused at present)
+
+# Special opcode with the property that no opcode in a compiled program
+# will ever be of this type. Thus it can be used as a flag value that
+# no other opcode has been seen. END is used similarly, in that an END
+# node cant be optimized. So END implies "unoptimizable" and PSEUDO mean
+# "not seen anything to optimize yet".
+PSEUDO PSEUDO,off Pseudo opcode for internal use.