The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

patch <<'__', after => qr(with the POSIX routines of the same names);
#ifdef RE_FIELDS
#  define PERL_EXT
#  define PERL_EXT_RE_BUILD
#  ifdef PERL_EXT_RE_DEBUG
#    undef PERL_EXT_RE_DEBUG
#  endif
#endif
__
 
patch <<'__', before => qr(Allow for side effects in s);
#ifdef RE_FIELDS
#  include "rx_lend.h"
#endif
__
 
patch <<'__', after => qr(r->data = 0), 0;
#ifdef RE_FIELDS
    rx_regcomp_start(aTHX _aREXC);
#endif
__
 
patch <<'__', before => qr((RExC_seen|PL_regseen)\Q |= REG_SEEN_LOOKBEHIND);
#ifdef RE_FIELDS
		if (isALPHA(*RExC_parse)) {
		    char *name = RExC_parse;
		    while (isALNUM(*RExC_parse))
			RExC_parse++;

		    if (*RExC_parse == '\0') {
			RExC_parse = name;
			vFAIL("Sequence (?<name>... not terminated");
		    }
		    if (*RExC_parse != '>') {
			RExC_parse = name;
			vFAIL("Illegal character in (?<name>");
		    }

		    if (!SIZE_ONLY)
			rx_regcomp_parse(aTHX_ aREXC_ name, RExC_parse-name);

		    nextchar(aREXC);
		    while (*RExC_parse && isSPACE(*RExC_parse))
			RExC_parse++;
		    paren = 1;
		    goto plain_parens;
		}
#endif
__
 
patch <<'__', before => qr(parno = (PL_reg|RExC_)npar);
#ifdef RE_FIELDS
	plain_parens:
#endif
__
 
patch <<'__', before => qr(\Qif (!r || (--r->refcnt > 0)));
#ifdef RE_FIELDS
    rx_regfree(aTHX_ r);
#endif
__

1;