assert(OP(ssc) == ANYOF_SYNTHETIC);
- if (! ANYOF_FLAGS(ssc) & ANYOF_EMPTY_STRING) {
+ if (! (ANYOF_FLAGS(ssc) & ANYOF_EMPTY_STRING)) {
return FALSE;
}
flags &= ~SCF_DO_STCLASS_AND;
StructCopy(&this_class, data->start_class, regnode_ssc);
flags |= SCF_DO_STCLASS_OR;
+ ANYOF_FLAGS(data->start_class) |= ANYOF_EMPTY_STRING;
}
} else { /* Non-zero len */
if (flags & SCF_DO_STCLASS_OR) {
if ((!(r->anchored_substr || r->anchored_utf8) || r->anchored_offset)
&& stclass_flag
- && ! ANYOF_FLAGS(data.start_class) & ANYOF_EMPTY_STRING
+ && ! (ANYOF_FLAGS(data.start_class) & ANYOF_EMPTY_STRING)
&& !ssc_is_anything(data.start_class))
{
const U32 n = add_data(pRExC_state, STR_WITH_LEN("f"));
r->check_substr = r->check_utf8 = r->anchored_substr = r->anchored_utf8
= r->float_substr = r->float_utf8 = NULL;
- if (! ANYOF_FLAGS(data.start_class) & ANYOF_EMPTY_STRING
- && !ssc_is_anything(data.start_class))
- {
+ if (! (ANYOF_FLAGS(data.start_class) & ANYOF_EMPTY_STRING)
+ && ! ssc_is_anything(data.start_class))
+ {
const U32 n = add_data(pRExC_state, STR_WITH_LEN("f"));
ssc_finalize(pRExC_state, data.start_class);
(?:(a(*SKIP)b)){0}(?:(?1)|ac) x n - -
# RT #119073: PCRE regression test: {0} => NOTHING optimization
(?1)(?:(b)){0} b y $& b
+# RT #120041
+^A*\z y $&
# Keep these lines at the end of the file
# vim: softtabstop=0 noexpandtab