summaryrefslogtreecommitdiff
path: root/regcomp.c
diff options
context:
space:
mode:
Diffstat (limited to 'regcomp.c')
-rw-r--r--regcomp.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/regcomp.c b/regcomp.c
index d3788c8f16..0e9846c2e6 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -903,7 +903,9 @@ tryagain:
goto defchar;
else {
regsawback = 1;
- ret = reganode(REF, num);
+ ret = reganode((regflags & PMf_FOLD)
+ ? ((regflags & PMf_LOCALE) ? REFFL : REFF)
+ : REF, num);
*flagp |= HASWIDTH;
while (isDIGIT(*regparse))
regparse++;
@@ -1667,6 +1669,12 @@ char *op;
case REF:
sv_catpvf(sv, "REF%d", ARG1(op));
break;
+ case REFF:
+ sv_catpvf(sv, "REFF%d", ARG1(op));
+ break;
+ case REFFL:
+ sv_catpvf(sv, "REFFL%d", ARG1(op));
+ break;
case OPEN:
sv_catpvf(sv, "OPEN%d", ARG1(op));
break;