summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--regcomp.c3
-rw-r--r--toke.c4
2 files changed, 5 insertions, 2 deletions
diff --git a/regcomp.c b/regcomp.c
index f4fcaa9073..a1272ebfc7 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -1734,6 +1734,9 @@ S_reg(pTHX_ I32 paren, I32 *flagp)
nextchar();
*flagp = TRYAGAIN;
return NULL;
+ case 'p':
+ Perl_warner(aTHX_ WARN_REGEXP, "(?p{}) is deprecated - use (??{})");
+ /* FALL THROUGH*/
case '?':
logical = 1;
paren = *PL_regcomp_parse++;
diff --git a/toke.c b/toke.c
index 3af0896349..79ee972e02 100644
--- a/toke.c
+++ b/toke.c
@@ -1269,8 +1269,8 @@ S_scan_const(pTHX_ char *start)
if (s[2] == '#') {
while (s < send && *s != ')')
*d++ = *s++;
- } else if (s[2] == '{'
- || s[2] == '?' && s[3] == '{') { /* This should march regcomp.c */
+ } else if (s[2] == '{' /* This should match regcomp.c */
+ || (s[2] == 'p' || s[2] == '?') && s[3] == '{') {
I32 count = 1;
char *regparse = s + (s[2] == '{' ? 3 : 4);
char c;