#define EXACTFU 38 /* 0x26 Match this string (folded iff in UTF-8, length in folding doesn't change if not in UTF-8) using /iu rules (w/len). */
#define EXACTFA 39 /* 0x27 Match this string (not guaranteed to be folded) using /iaa rules (w/len). */
#define EXACTFU_SS 40 /* 0x28 Match this string (folded iff in UTF-8, length in folding may change even if not in UTF-8) using /iu rules (w/len). */
-#define EXACTFU_TRICKYFOLD 41 /* 0x29 Match this folded UTF-8 string using /iu rules */
+#define EXACTFA_NO_TRIE 41 /* 0x29 Match this string (which is not trie-able; not guaranteed to be folded) using /iaa rules (w/len). */
#define NOTHING 42 /* 0x2a Match empty string. */
#define TAIL 43 /* 0x2b Match empty string. Can jump here from outside. */
#define STAR 44 /* 0x2c Match this (simple) thing 0 or more times. */
EXACT, /* EXACTFU */
EXACT, /* EXACTFA */
EXACT, /* EXACTFU_SS */
- EXACT, /* EXACTFU_TRICKYFOLD */
+ EXACT, /* EXACTFA_NO_TRIE */
NOTHING, /* NOTHING */
NOTHING, /* TAIL */
STAR, /* STAR */
0, /* EXACTFU */
0, /* EXACTFA */
0, /* EXACTFU_SS */
- 0, /* EXACTFU_TRICKYFOLD */
+ 0, /* EXACTFA_NO_TRIE */
0, /* NOTHING */
0, /* TAIL */
0, /* STAR */
0, /* EXACTFU */
0, /* EXACTFA */
0, /* EXACTFU_SS */
- 0, /* EXACTFU_TRICKYFOLD */
+ 0, /* EXACTFA_NO_TRIE */
0, /* NOTHING */
0, /* TAIL */
0, /* STAR */
"EXACTFU", /* 0x26 */
"EXACTFA", /* 0x27 */
"EXACTFU_SS", /* 0x28 */
- "EXACTFU_TRICKYFOLD", /* 0x29 */
+ "EXACTFA_NO_TRIE", /* 0x29 */
"NOTHING", /* 0x2a */
"TAIL", /* 0x2b */
"STAR", /* 0x2c */
EXTCONST char * PL_reg_extflags_name[];
#else
EXTCONST char * const PL_reg_extflags_name[] = {
- /* Bits in extflags defined: 11011111111111111111111011111111 */
+ /* Bits in extflags defined: 11111110111111111111111111111111 */
"MULTILINE", /* 0x00000001 */
"SINGLELINE", /* 0x00000002 */
"FOLD", /* 0x00000004 */
"CHARSET0", /* 0x00000020 : "CHARSET" - 0x000000e0 */
"CHARSET1", /* 0x00000040 : "CHARSET" - 0x000000e0 */
"CHARSET2", /* 0x00000080 : "CHARSET" - 0x000000e0 */
- "UNUSED_BIT_8", /* 0x00000100 */
+ "SPLIT", /* 0x00000100 */
"ANCH_BOL", /* 0x00000200 */
"ANCH_MBOL", /* 0x00000400 */
"ANCH_SBOL", /* 0x00000800 */
"ANCH_GPOS", /* 0x00001000 */
"GPOS_SEEN", /* 0x00002000 */
"GPOS_FLOAT", /* 0x00004000 */
- "LOOKBEHIND_SEEN", /* 0x00008000 */
+ "NO_INPLACE_SUBST", /* 0x00008000 */
"EVAL_SEEN", /* 0x00010000 */
"CANY_SEEN", /* 0x00020000 */
"NOSCAN", /* 0x00040000 */
"USE_INTUIT_NOML", /* 0x00200000 */
"USE_INTUIT_ML", /* 0x00400000 */
"INTUIT_TAIL", /* 0x00800000 */
- "MODIFIES_VARS", /* 0x01000000 */
+ "UNUSED_BIT_24", /* 0x01000000 */
"COPY_DONE", /* 0x02000000 */
"TAINTED_SEEN", /* 0x04000000 */
"TAINTED", /* 0x08000000 */
"START_ONLY", /* 0x10000000 */
- "UNUSED_BIT_29", /* 0x20000000 */
+ "SKIPWHITE", /* 0x20000000 */
"WHITE", /* 0x40000000 */
"NULL", /* 0x80000000 */
};
#endif /* DOINIT */
+/* PL_reg_intflags_name[] - Opcode/state names in string form, for debugging */
+
+#ifndef DOINIT
+EXTCONST char * PL_reg_intflags_name[];
+#else
+EXTCONST char * const PL_reg_intflags_name[] = {
+ "SKIP", /* 0x00000001 - PREGf_SKIP */
+ "IMPLICIT", /* 0x00000002 - PREGf_IMPLICIT - Converted .* to ^.* */
+ "NAUGHTY", /* 0x00000004 - PREGf_NAUGHTY - how exponential is this pattern? */
+ "VERBARG_SEEN", /* 0x00000008 - PREGf_VERBARG_SEEN */
+ "CUTGROUP_SEEN", /* 0x00000010 - PREGf_CUTGROUP_SEEN */
+ "USE_RE_EVAL", /* 0x00000020 - PREGf_USE_RE_EVAL - compiled with "use re 'eval'" */
+};
+#endif /* DOINIT */
+
/* The following have no fixed length. U8 so we can do strchr() on it. */
#define REGNODE_VARIES(node) (PL_varies_bitmask[(node) >> 3] & (1 << ((node) & 7)))