perlguts caveats
[p5sagit/p5-mst-13.2.git] / regcomp.c
index 9b0d4fc..0e9846c 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -469,7 +469,7 @@ I32 *flagp;
                return NULL;
            default:
                --regparse;
-               while (*regparse && strchr("iogmsx", *regparse))
+               while (*regparse && strchr("iogcmsx", *regparse))
                    pmflag(&regflags, *regparse++);
                if (*regparse != ')')
                    croak("Sequence (?%c...) not recognized", *regparse);
@@ -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;