This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
mktables: Fix GCB to work on early Unicodes
authorKarl Williamson <khw@cpan.org>
Mon, 27 Jul 2015 14:12:02 +0000 (08:12 -0600)
committerKarl Williamson <khw@cpan.org>
Wed, 29 Jul 2015 04:15:58 +0000 (22:15 -0600)
The GCB property was not properly being generated in early Unicode
releases.  The huge commit diff is due solely to the fact that the name
changes of this property so it is sure to not be accessible outside the
perl core, and the property tables are automatically resorted
alphabetically.

charclass_invlists.h
lib/unicore/mktables
perl.c
regcharclass.h
regen/mk_invlists.pl
regexec.c

index 19c48ee..f688eef 100644 (file)
@@ -312,7 +312,387 @@ static const UV Cased_invlist[] = { /* for ASCII/Latin1 */
        0x1F18A
 };
 
-static const UV Grapheme_Cluster_Break_invlist[] = { /* for ASCII/Latin1 */
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for ASCII/Latin1 */
+       45,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x2BC,
+       0x2BD,
+       0x308,
+       0x309,
+       0x313,
+       0x314,
+       0x342,
+       0x343,
+       0x3AC,
+       0x3AD,
+       0x3AE,
+       0x3AF,
+       0x3B1,
+       0x3B2,
+       0x3B7,
+       0x3B8,
+       0x3B9,
+       0x3BA,
+       0x3C1,
+       0x3C2,
+       0x3C5,
+       0x3C6,
+       0x3C9,
+       0x3CA,
+       0x3CE,
+       0x3CF,
+       0x565,
+       0x566,
+       0x574,
+       0x575,
+       0x57E,
+       0x57F,
+       0x1F00,
+       0x1F08,
+       0x1F20,
+       0x1F28,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F71,
+       0x1F74,
+       0x1F75,
+       0x1F7C,
+       0x1F7D
+};
+
+static const UV _Perl_Any_Folds_invlist[] = { /* for ASCII/Latin1 */
+       247,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x41,
+       0x5B,
+       0x61,
+       0x7B,
+       0xB5,
+       0xB6,
+       0xC0,
+       0xD7,
+       0xD8,
+       0xF7,
+       0xF8,
+       0x131,
+       0x132,
+       0x138,
+       0x139,
+       0x18D,
+       0x18E,
+       0x19B,
+       0x19C,
+       0x1AA,
+       0x1AC,
+       0x1BA,
+       0x1BC,
+       0x1BE,
+       0x1BF,
+       0x1C0,
+       0x1C4,
+       0x221,
+       0x222,
+       0x234,
+       0x23A,
+       0x255,
+       0x256,
+       0x258,
+       0x259,
+       0x25A,
+       0x25B,
+       0x25D,
+       0x260,
+       0x262,
+       0x263,
+       0x264,
+       0x265,
+       0x267,
+       0x268,
+       0x26A,
+       0x26B,
+       0x26D,
+       0x26F,
+       0x270,
+       0x271,
+       0x273,
+       0x275,
+       0x276,
+       0x27D,
+       0x27E,
+       0x280,
+       0x281,
+       0x283,
+       0x284,
+       0x287,
+       0x28D,
+       0x292,
+       0x293,
+       0x29D,
+       0x29F,
+       0x2BC,
+       0x2BD,
+       0x2BE,
+       0x2BF,
+       0x300,
+       0x302,
+       0x307,
+       0x309,
+       0x30A,
+       0x30B,
+       0x30C,
+       0x30D,
+       0x313,
+       0x314,
+       0x331,
+       0x332,
+       0x342,
+       0x343,
+       0x345,
+       0x346,
+       0x370,
+       0x374,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3D2,
+       0x3D5,
+       0x3F6,
+       0x3F7,
+       0x3FC,
+       0x3FD,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x561,
+       0x588,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x13A0,
+       0x13F6,
+       0x13F8,
+       0x13FE,
+       0x1D79,
+       0x1D7A,
+       0x1D7D,
+       0x1D7E,
+       0x1E00,
+       0x1E9C,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2126,
+       0x2127,
+       0x212A,
+       0x212C,
+       0x2132,
+       0x2133,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2180,
+       0x2183,
+       0x2185,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2C71,
+       0x2C72,
+       0x2C74,
+       0x2C75,
+       0x2C77,
+       0x2C7E,
+       0x2CE4,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA640,
+       0xA66E,
+       0xA680,
+       0xA69C,
+       0xA722,
+       0xA730,
+       0xA732,
+       0xA770,
+       0xA779,
+       0xA788,
+       0xA78B,
+       0xA78E,
+       0xA790,
+       0xA794,
+       0xA796,
+       0xA7AE,
+       0xA7B0,
+       0xA7B8,
+       0xAB53,
+       0xAB54,
+       0xAB70,
+       0xABC0,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0x10400,
+       0x10450,
+       0x10C80,
+       0x10CB3,
+       0x10CC0,
+       0x10CF3,
+       0x118A0,
+       0x118E0
+};
+
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for ASCII/Latin1 */
+       59,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0xDF,
+       0xE0,
+       0x130,
+       0x131,
+       0x149,
+       0x14A,
+       0x1F0,
+       0x1F1,
+       0x390,
+       0x391,
+       0x3B0,
+       0x3B1,
+       0x587,
+       0x588,
+       0x1E96,
+       0x1E9B,
+       0x1E9E,
+       0x1E9F,
+       0x1F50,
+       0x1F51,
+       0x1F52,
+       0x1F53,
+       0x1F54,
+       0x1F55,
+       0x1F56,
+       0x1F57,
+       0x1F80,
+       0x1FB0,
+       0x1FB2,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBC,
+       0x1FBD,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FCC,
+       0x1FCD,
+       0x1FD2,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FE2,
+       0x1FE5,
+       0x1FE6,
+       0x1FE8,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x1FFC,
+       0x1FFD,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18
+};
+
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV _Perl_GCB_invlist[] = { /* for ASCII/Latin1 */
        1502,   /* Number of elements */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
@@ -1844,7 +2224,7 @@ typedef enum {
        GCB_V = 13
 } GCB_enum;
 
-static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for ASCII/Latin1 */
+static const GCB_enum _Perl_GCB_invmap[] = { /* for ASCII/Latin1 */
        GCB_Control,
        GCB_LF,
        GCB_Control,
@@ -3351,382 +3731,6 @@ static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for ASCII/Latin1 */
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
 
-#if defined(PERL_IN_REGCOMP_C)
-
-static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for ASCII/Latin1 */
-       45,     /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x2BC,
-       0x2BD,
-       0x308,
-       0x309,
-       0x313,
-       0x314,
-       0x342,
-       0x343,
-       0x3AC,
-       0x3AD,
-       0x3AE,
-       0x3AF,
-       0x3B1,
-       0x3B2,
-       0x3B7,
-       0x3B8,
-       0x3B9,
-       0x3BA,
-       0x3C1,
-       0x3C2,
-       0x3C5,
-       0x3C6,
-       0x3C9,
-       0x3CA,
-       0x3CE,
-       0x3CF,
-       0x565,
-       0x566,
-       0x574,
-       0x575,
-       0x57E,
-       0x57F,
-       0x1F00,
-       0x1F08,
-       0x1F20,
-       0x1F28,
-       0x1F60,
-       0x1F68,
-       0x1F70,
-       0x1F71,
-       0x1F74,
-       0x1F75,
-       0x1F7C,
-       0x1F7D
-};
-
-static const UV _Perl_Any_Folds_invlist[] = { /* for ASCII/Latin1 */
-       247,    /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x41,
-       0x5B,
-       0x61,
-       0x7B,
-       0xB5,
-       0xB6,
-       0xC0,
-       0xD7,
-       0xD8,
-       0xF7,
-       0xF8,
-       0x131,
-       0x132,
-       0x138,
-       0x139,
-       0x18D,
-       0x18E,
-       0x19B,
-       0x19C,
-       0x1AA,
-       0x1AC,
-       0x1BA,
-       0x1BC,
-       0x1BE,
-       0x1BF,
-       0x1C0,
-       0x1C4,
-       0x221,
-       0x222,
-       0x234,
-       0x23A,
-       0x255,
-       0x256,
-       0x258,
-       0x259,
-       0x25A,
-       0x25B,
-       0x25D,
-       0x260,
-       0x262,
-       0x263,
-       0x264,
-       0x265,
-       0x267,
-       0x268,
-       0x26A,
-       0x26B,
-       0x26D,
-       0x26F,
-       0x270,
-       0x271,
-       0x273,
-       0x275,
-       0x276,
-       0x27D,
-       0x27E,
-       0x280,
-       0x281,
-       0x283,
-       0x284,
-       0x287,
-       0x28D,
-       0x292,
-       0x293,
-       0x29D,
-       0x29F,
-       0x2BC,
-       0x2BD,
-       0x2BE,
-       0x2BF,
-       0x300,
-       0x302,
-       0x307,
-       0x309,
-       0x30A,
-       0x30B,
-       0x30C,
-       0x30D,
-       0x313,
-       0x314,
-       0x331,
-       0x332,
-       0x342,
-       0x343,
-       0x345,
-       0x346,
-       0x370,
-       0x374,
-       0x376,
-       0x378,
-       0x37B,
-       0x37E,
-       0x37F,
-       0x380,
-       0x386,
-       0x387,
-       0x388,
-       0x38B,
-       0x38C,
-       0x38D,
-       0x38E,
-       0x3A2,
-       0x3A3,
-       0x3D2,
-       0x3D5,
-       0x3F6,
-       0x3F7,
-       0x3FC,
-       0x3FD,
-       0x482,
-       0x48A,
-       0x530,
-       0x531,
-       0x557,
-       0x561,
-       0x588,
-       0x10A0,
-       0x10C6,
-       0x10C7,
-       0x10C8,
-       0x10CD,
-       0x10CE,
-       0x13A0,
-       0x13F6,
-       0x13F8,
-       0x13FE,
-       0x1D79,
-       0x1D7A,
-       0x1D7D,
-       0x1D7E,
-       0x1E00,
-       0x1E9C,
-       0x1E9E,
-       0x1E9F,
-       0x1EA0,
-       0x1F16,
-       0x1F18,
-       0x1F1E,
-       0x1F20,
-       0x1F46,
-       0x1F48,
-       0x1F4E,
-       0x1F50,
-       0x1F58,
-       0x1F59,
-       0x1F5A,
-       0x1F5B,
-       0x1F5C,
-       0x1F5D,
-       0x1F5E,
-       0x1F5F,
-       0x1F7E,
-       0x1F80,
-       0x1FB5,
-       0x1FB6,
-       0x1FBD,
-       0x1FBE,
-       0x1FBF,
-       0x1FC2,
-       0x1FC5,
-       0x1FC6,
-       0x1FCD,
-       0x1FD0,
-       0x1FD4,
-       0x1FD6,
-       0x1FDC,
-       0x1FE0,
-       0x1FED,
-       0x1FF2,
-       0x1FF5,
-       0x1FF6,
-       0x1FFD,
-       0x2126,
-       0x2127,
-       0x212A,
-       0x212C,
-       0x2132,
-       0x2133,
-       0x214E,
-       0x214F,
-       0x2160,
-       0x2180,
-       0x2183,
-       0x2185,
-       0x24B6,
-       0x24EA,
-       0x2C00,
-       0x2C2F,
-       0x2C30,
-       0x2C5F,
-       0x2C60,
-       0x2C71,
-       0x2C72,
-       0x2C74,
-       0x2C75,
-       0x2C77,
-       0x2C7E,
-       0x2CE4,
-       0x2CEB,
-       0x2CEF,
-       0x2CF2,
-       0x2CF4,
-       0x2D00,
-       0x2D26,
-       0x2D27,
-       0x2D28,
-       0x2D2D,
-       0x2D2E,
-       0xA640,
-       0xA66E,
-       0xA680,
-       0xA69C,
-       0xA722,
-       0xA730,
-       0xA732,
-       0xA770,
-       0xA779,
-       0xA788,
-       0xA78B,
-       0xA78E,
-       0xA790,
-       0xA794,
-       0xA796,
-       0xA7AE,
-       0xA7B0,
-       0xA7B8,
-       0xAB53,
-       0xAB54,
-       0xAB70,
-       0xABC0,
-       0xFB00,
-       0xFB07,
-       0xFB13,
-       0xFB18,
-       0xFF21,
-       0xFF3B,
-       0xFF41,
-       0xFF5B,
-       0x10400,
-       0x10450,
-       0x10C80,
-       0x10CB3,
-       0x10CC0,
-       0x10CF3,
-       0x118A0,
-       0x118E0
-};
-
-static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for ASCII/Latin1 */
-       59,     /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0xDF,
-       0xE0,
-       0x130,
-       0x131,
-       0x149,
-       0x14A,
-       0x1F0,
-       0x1F1,
-       0x390,
-       0x391,
-       0x3B0,
-       0x3B1,
-       0x587,
-       0x588,
-       0x1E96,
-       0x1E9B,
-       0x1E9E,
-       0x1E9F,
-       0x1F50,
-       0x1F51,
-       0x1F52,
-       0x1F53,
-       0x1F54,
-       0x1F55,
-       0x1F56,
-       0x1F57,
-       0x1F80,
-       0x1FB0,
-       0x1FB2,
-       0x1FB5,
-       0x1FB6,
-       0x1FB8,
-       0x1FBC,
-       0x1FBD,
-       0x1FC2,
-       0x1FC5,
-       0x1FC6,
-       0x1FC8,
-       0x1FCC,
-       0x1FCD,
-       0x1FD2,
-       0x1FD4,
-       0x1FD6,
-       0x1FD8,
-       0x1FE2,
-       0x1FE5,
-       0x1FE6,
-       0x1FE8,
-       0x1FF2,
-       0x1FF5,
-       0x1FF6,
-       0x1FF8,
-       0x1FFC,
-       0x1FFD,
-       0xFB00,
-       0xFB07,
-       0xFB13,
-       0xFB18
-};
-
-#endif /* defined(PERL_IN_REGCOMP_C) */
-
 #if defined(PERL_IN_UTF8_C)
 
 static const UV _Perl_IDCont_invlist[] = { /* for ASCII/Latin1 */
@@ -24947,7 +24951,419 @@ static const UV Cased_invlist[] = { /* for EBCDIC 1047 */
        0x1F18A
 };
 
-static const UV Grapheme_Cluster_Break_invlist[] = { /* for EBCDIC 1047 */
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 1047 */
+       45,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x2BC,
+       0x2BD,
+       0x308,
+       0x309,
+       0x313,
+       0x314,
+       0x342,
+       0x343,
+       0x3AC,
+       0x3AD,
+       0x3AE,
+       0x3AF,
+       0x3B1,
+       0x3B2,
+       0x3B7,
+       0x3B8,
+       0x3B9,
+       0x3BA,
+       0x3C1,
+       0x3C2,
+       0x3C5,
+       0x3C6,
+       0x3C9,
+       0x3CA,
+       0x3CE,
+       0x3CF,
+       0x565,
+       0x566,
+       0x574,
+       0x575,
+       0x57E,
+       0x57F,
+       0x1F00,
+       0x1F08,
+       0x1F20,
+       0x1F28,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F71,
+       0x1F74,
+       0x1F75,
+       0x1F7C,
+       0x1F7D
+};
+
+static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 1047 */
+       279,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9A,
+       0x9C,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAD,
+       0xAE,
+       0xAF,
+       0xBA,
+       0xBB,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFB,
+       0xFF,
+       0x100,
+       0x131,
+       0x132,
+       0x138,
+       0x139,
+       0x18D,
+       0x18E,
+       0x19B,
+       0x19C,
+       0x1AA,
+       0x1AC,
+       0x1BA,
+       0x1BC,
+       0x1BE,
+       0x1BF,
+       0x1C0,
+       0x1C4,
+       0x221,
+       0x222,
+       0x234,
+       0x23A,
+       0x255,
+       0x256,
+       0x258,
+       0x259,
+       0x25A,
+       0x25B,
+       0x25D,
+       0x260,
+       0x262,
+       0x263,
+       0x264,
+       0x265,
+       0x267,
+       0x268,
+       0x26A,
+       0x26B,
+       0x26D,
+       0x26F,
+       0x270,
+       0x271,
+       0x273,
+       0x275,
+       0x276,
+       0x27D,
+       0x27E,
+       0x280,
+       0x281,
+       0x283,
+       0x284,
+       0x287,
+       0x28D,
+       0x292,
+       0x293,
+       0x29D,
+       0x29F,
+       0x2BC,
+       0x2BD,
+       0x2BE,
+       0x2BF,
+       0x300,
+       0x302,
+       0x307,
+       0x309,
+       0x30A,
+       0x30B,
+       0x30C,
+       0x30D,
+       0x313,
+       0x314,
+       0x331,
+       0x332,
+       0x342,
+       0x343,
+       0x345,
+       0x346,
+       0x370,
+       0x374,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3D2,
+       0x3D5,
+       0x3F6,
+       0x3F7,
+       0x3FC,
+       0x3FD,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x561,
+       0x588,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x13A0,
+       0x13F6,
+       0x13F8,
+       0x13FE,
+       0x1D79,
+       0x1D7A,
+       0x1D7D,
+       0x1D7E,
+       0x1E00,
+       0x1E9C,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2126,
+       0x2127,
+       0x212A,
+       0x212C,
+       0x2132,
+       0x2133,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2180,
+       0x2183,
+       0x2185,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2C71,
+       0x2C72,
+       0x2C74,
+       0x2C75,
+       0x2C77,
+       0x2C7E,
+       0x2CE4,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA640,
+       0xA66E,
+       0xA680,
+       0xA69C,
+       0xA722,
+       0xA730,
+       0xA732,
+       0xA770,
+       0xA779,
+       0xA788,
+       0xA78B,
+       0xA78E,
+       0xA790,
+       0xA794,
+       0xA796,
+       0xA7AE,
+       0xA7B0,
+       0xA7B8,
+       0xAB53,
+       0xAB54,
+       0xAB70,
+       0xABC0,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0x10400,
+       0x10450,
+       0x10C80,
+       0x10CB3,
+       0x10CC0,
+       0x10CF3,
+       0x118A0,
+       0x118E0
+};
+
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 1047 */
+       59,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x59,
+       0x5A,
+       0x130,
+       0x131,
+       0x149,
+       0x14A,
+       0x1F0,
+       0x1F1,
+       0x390,
+       0x391,
+       0x3B0,
+       0x3B1,
+       0x587,
+       0x588,
+       0x1E96,
+       0x1E9B,
+       0x1E9E,
+       0x1E9F,
+       0x1F50,
+       0x1F51,
+       0x1F52,
+       0x1F53,
+       0x1F54,
+       0x1F55,
+       0x1F56,
+       0x1F57,
+       0x1F80,
+       0x1FB0,
+       0x1FB2,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBC,
+       0x1FBD,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FCC,
+       0x1FCD,
+       0x1FD2,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FE2,
+       0x1FE5,
+       0x1FE6,
+       0x1FE8,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x1FFC,
+       0x1FFD,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18
+};
+
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 1047 */
        1502,   /* Number of elements */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
@@ -26479,7 +26895,7 @@ typedef enum {
        GCB_V = 13
 } GCB_enum;
 
-static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC 1047 */
+static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 1047 */
        GCB_Control,
        GCB_CR,
        GCB_Control,
@@ -27986,414 +28402,6 @@ static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC 1047 */
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
 
-#if defined(PERL_IN_REGCOMP_C)
-
-static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 1047 */
-       45,     /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x2BC,
-       0x2BD,
-       0x308,
-       0x309,
-       0x313,
-       0x314,
-       0x342,
-       0x343,
-       0x3AC,
-       0x3AD,
-       0x3AE,
-       0x3AF,
-       0x3B1,
-       0x3B2,
-       0x3B7,
-       0x3B8,
-       0x3B9,
-       0x3BA,
-       0x3C1,
-       0x3C2,
-       0x3C5,
-       0x3C6,
-       0x3C9,
-       0x3CA,
-       0x3CE,
-       0x3CF,
-       0x565,
-       0x566,
-       0x574,
-       0x575,
-       0x57E,
-       0x57F,
-       0x1F00,
-       0x1F08,
-       0x1F20,
-       0x1F28,
-       0x1F60,
-       0x1F68,
-       0x1F70,
-       0x1F71,
-       0x1F74,
-       0x1F75,
-       0x1F7C,
-       0x1F7D
-};
-
-static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 1047 */
-       279,    /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x42,
-       0x4A,
-       0x51,
-       0x5A,
-       0x62,
-       0x6A,
-       0x70,
-       0x79,
-       0x80,
-       0x8A,
-       0x8C,
-       0x8F,
-       0x91,
-       0x9A,
-       0x9C,
-       0x9D,
-       0x9E,
-       0x9F,
-       0xA0,
-       0xA1,
-       0xA2,
-       0xAA,
-       0xAC,
-       0xAD,
-       0xAE,
-       0xAF,
-       0xBA,
-       0xBB,
-       0xC1,
-       0xCA,
-       0xCB,
-       0xD0,
-       0xD1,
-       0xDA,
-       0xDB,
-       0xE0,
-       0xE2,
-       0xEA,
-       0xEB,
-       0xF0,
-       0xFB,
-       0xFF,
-       0x100,
-       0x131,
-       0x132,
-       0x138,
-       0x139,
-       0x18D,
-       0x18E,
-       0x19B,
-       0x19C,
-       0x1AA,
-       0x1AC,
-       0x1BA,
-       0x1BC,
-       0x1BE,
-       0x1BF,
-       0x1C0,
-       0x1C4,
-       0x221,
-       0x222,
-       0x234,
-       0x23A,
-       0x255,
-       0x256,
-       0x258,
-       0x259,
-       0x25A,
-       0x25B,
-       0x25D,
-       0x260,
-       0x262,
-       0x263,
-       0x264,
-       0x265,
-       0x267,
-       0x268,
-       0x26A,
-       0x26B,
-       0x26D,
-       0x26F,
-       0x270,
-       0x271,
-       0x273,
-       0x275,
-       0x276,
-       0x27D,
-       0x27E,
-       0x280,
-       0x281,
-       0x283,
-       0x284,
-       0x287,
-       0x28D,
-       0x292,
-       0x293,
-       0x29D,
-       0x29F,
-       0x2BC,
-       0x2BD,
-       0x2BE,
-       0x2BF,
-       0x300,
-       0x302,
-       0x307,
-       0x309,
-       0x30A,
-       0x30B,
-       0x30C,
-       0x30D,
-       0x313,
-       0x314,
-       0x331,
-       0x332,
-       0x342,
-       0x343,
-       0x345,
-       0x346,
-       0x370,
-       0x374,
-       0x376,
-       0x378,
-       0x37B,
-       0x37E,
-       0x37F,
-       0x380,
-       0x386,
-       0x387,
-       0x388,
-       0x38B,
-       0x38C,
-       0x38D,
-       0x38E,
-       0x3A2,
-       0x3A3,
-       0x3D2,
-       0x3D5,
-       0x3F6,
-       0x3F7,
-       0x3FC,
-       0x3FD,
-       0x482,
-       0x48A,
-       0x530,
-       0x531,
-       0x557,
-       0x561,
-       0x588,
-       0x10A0,
-       0x10C6,
-       0x10C7,
-       0x10C8,
-       0x10CD,
-       0x10CE,
-       0x13A0,
-       0x13F6,
-       0x13F8,
-       0x13FE,
-       0x1D79,
-       0x1D7A,
-       0x1D7D,
-       0x1D7E,
-       0x1E00,
-       0x1E9C,
-       0x1E9E,
-       0x1E9F,
-       0x1EA0,
-       0x1F16,
-       0x1F18,
-       0x1F1E,
-       0x1F20,
-       0x1F46,
-       0x1F48,
-       0x1F4E,
-       0x1F50,
-       0x1F58,
-       0x1F59,
-       0x1F5A,
-       0x1F5B,
-       0x1F5C,
-       0x1F5D,
-       0x1F5E,
-       0x1F5F,
-       0x1F7E,
-       0x1F80,
-       0x1FB5,
-       0x1FB6,
-       0x1FBD,
-       0x1FBE,
-       0x1FBF,
-       0x1FC2,
-       0x1FC5,
-       0x1FC6,
-       0x1FCD,
-       0x1FD0,
-       0x1FD4,
-       0x1FD6,
-       0x1FDC,
-       0x1FE0,
-       0x1FED,
-       0x1FF2,
-       0x1FF5,
-       0x1FF6,
-       0x1FFD,
-       0x2126,
-       0x2127,
-       0x212A,
-       0x212C,
-       0x2132,
-       0x2133,
-       0x214E,
-       0x214F,
-       0x2160,
-       0x2180,
-       0x2183,
-       0x2185,
-       0x24B6,
-       0x24EA,
-       0x2C00,
-       0x2C2F,
-       0x2C30,
-       0x2C5F,
-       0x2C60,
-       0x2C71,
-       0x2C72,
-       0x2C74,
-       0x2C75,
-       0x2C77,
-       0x2C7E,
-       0x2CE4,
-       0x2CEB,
-       0x2CEF,
-       0x2CF2,
-       0x2CF4,
-       0x2D00,
-       0x2D26,
-       0x2D27,
-       0x2D28,
-       0x2D2D,
-       0x2D2E,
-       0xA640,
-       0xA66E,
-       0xA680,
-       0xA69C,
-       0xA722,
-       0xA730,
-       0xA732,
-       0xA770,
-       0xA779,
-       0xA788,
-       0xA78B,
-       0xA78E,
-       0xA790,
-       0xA794,
-       0xA796,
-       0xA7AE,
-       0xA7B0,
-       0xA7B8,
-       0xAB53,
-       0xAB54,
-       0xAB70,
-       0xABC0,
-       0xFB00,
-       0xFB07,
-       0xFB13,
-       0xFB18,
-       0xFF21,
-       0xFF3B,
-       0xFF41,
-       0xFF5B,
-       0x10400,
-       0x10450,
-       0x10C80,
-       0x10CB3,
-       0x10CC0,
-       0x10CF3,
-       0x118A0,
-       0x118E0
-};
-
-static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 1047 */
-       59,     /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x59,
-       0x5A,
-       0x130,
-       0x131,
-       0x149,
-       0x14A,
-       0x1F0,
-       0x1F1,
-       0x390,
-       0x391,
-       0x3B0,
-       0x3B1,
-       0x587,
-       0x588,
-       0x1E96,
-       0x1E9B,
-       0x1E9E,
-       0x1E9F,
-       0x1F50,
-       0x1F51,
-       0x1F52,
-       0x1F53,
-       0x1F54,
-       0x1F55,
-       0x1F56,
-       0x1F57,
-       0x1F80,
-       0x1FB0,
-       0x1FB2,
-       0x1FB5,
-       0x1FB6,
-       0x1FB8,
-       0x1FBC,
-       0x1FBD,
-       0x1FC2,
-       0x1FC5,
-       0x1FC6,
-       0x1FC8,
-       0x1FCC,
-       0x1FCD,
-       0x1FD2,
-       0x1FD4,
-       0x1FD6,
-       0x1FD8,
-       0x1FE2,
-       0x1FE5,
-       0x1FE6,
-       0x1FE8,
-       0x1FF2,
-       0x1FF5,
-       0x1FF6,
-       0x1FF8,
-       0x1FFC,
-       0x1FFD,
-       0xFB00,
-       0xFB07,
-       0xFB13,
-       0xFB18
-};
-
-#endif /* defined(PERL_IN_REGCOMP_C) */
-
 #if defined(PERL_IN_UTF8_C)
 
 static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 1047 */
@@ -49924,7 +49932,415 @@ static const UV Cased_invlist[] = { /* for EBCDIC 037 */
        0x1F18A
 };
 
-static const UV Grapheme_Cluster_Break_invlist[] = { /* for EBCDIC 037 */
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 037 */
+       45,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x2BC,
+       0x2BD,
+       0x308,
+       0x309,
+       0x313,
+       0x314,
+       0x342,
+       0x343,
+       0x3AC,
+       0x3AD,
+       0x3AE,
+       0x3AF,
+       0x3B1,
+       0x3B2,
+       0x3B7,
+       0x3B8,
+       0x3B9,
+       0x3BA,
+       0x3C1,
+       0x3C2,
+       0x3C5,
+       0x3C6,
+       0x3C9,
+       0x3CA,
+       0x3CE,
+       0x3CF,
+       0x565,
+       0x566,
+       0x574,
+       0x575,
+       0x57E,
+       0x57F,
+       0x1F00,
+       0x1F08,
+       0x1F20,
+       0x1F28,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F71,
+       0x1F74,
+       0x1F75,
+       0x1F7C,
+       0x1F7D
+};
+
+static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 037 */
+       275,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9A,
+       0x9C,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC1,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE0,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFB,
+       0xFF,
+       0x100,
+       0x131,
+       0x132,
+       0x138,
+       0x139,
+       0x18D,
+       0x18E,
+       0x19B,
+       0x19C,
+       0x1AA,
+       0x1AC,
+       0x1BA,
+       0x1BC,
+       0x1BE,
+       0x1BF,
+       0x1C0,
+       0x1C4,
+       0x221,
+       0x222,
+       0x234,
+       0x23A,
+       0x255,
+       0x256,
+       0x258,
+       0x259,
+       0x25A,
+       0x25B,
+       0x25D,
+       0x260,
+       0x262,
+       0x263,
+       0x264,
+       0x265,
+       0x267,
+       0x268,
+       0x26A,
+       0x26B,
+       0x26D,
+       0x26F,
+       0x270,
+       0x271,
+       0x273,
+       0x275,
+       0x276,
+       0x27D,
+       0x27E,
+       0x280,
+       0x281,
+       0x283,
+       0x284,
+       0x287,
+       0x28D,
+       0x292,
+       0x293,
+       0x29D,
+       0x29F,
+       0x2BC,
+       0x2BD,
+       0x2BE,
+       0x2BF,
+       0x300,
+       0x302,
+       0x307,
+       0x309,
+       0x30A,
+       0x30B,
+       0x30C,
+       0x30D,
+       0x313,
+       0x314,
+       0x331,
+       0x332,
+       0x342,
+       0x343,
+       0x345,
+       0x346,
+       0x370,
+       0x374,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3D2,
+       0x3D5,
+       0x3F6,
+       0x3F7,
+       0x3FC,
+       0x3FD,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x561,
+       0x588,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x13A0,
+       0x13F6,
+       0x13F8,
+       0x13FE,
+       0x1D79,
+       0x1D7A,
+       0x1D7D,
+       0x1D7E,
+       0x1E00,
+       0x1E9C,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2126,
+       0x2127,
+       0x212A,
+       0x212C,
+       0x2132,
+       0x2133,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2180,
+       0x2183,
+       0x2185,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2C71,
+       0x2C72,
+       0x2C74,
+       0x2C75,
+       0x2C77,
+       0x2C7E,
+       0x2CE4,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA640,
+       0xA66E,
+       0xA680,
+       0xA69C,
+       0xA722,
+       0xA730,
+       0xA732,
+       0xA770,
+       0xA779,
+       0xA788,
+       0xA78B,
+       0xA78E,
+       0xA790,
+       0xA794,
+       0xA796,
+       0xA7AE,
+       0xA7B0,
+       0xA7B8,
+       0xAB53,
+       0xAB54,
+       0xAB70,
+       0xABC0,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0x10400,
+       0x10450,
+       0x10C80,
+       0x10CB3,
+       0x10CC0,
+       0x10CF3,
+       0x118A0,
+       0x118E0
+};
+
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 037 */
+       59,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x59,
+       0x5A,
+       0x130,
+       0x131,
+       0x149,
+       0x14A,
+       0x1F0,
+       0x1F1,
+       0x390,
+       0x391,
+       0x3B0,
+       0x3B1,
+       0x587,
+       0x588,
+       0x1E96,
+       0x1E9B,
+       0x1E9E,
+       0x1E9F,
+       0x1F50,
+       0x1F51,
+       0x1F52,
+       0x1F53,
+       0x1F54,
+       0x1F55,
+       0x1F56,
+       0x1F57,
+       0x1F80,
+       0x1FB0,
+       0x1FB2,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBC,
+       0x1FBD,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FCC,
+       0x1FCD,
+       0x1FD2,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FE2,
+       0x1FE5,
+       0x1FE6,
+       0x1FE8,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x1FFC,
+       0x1FFD,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18
+};
+
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV _Perl_GCB_invlist[] = { /* for EBCDIC 037 */
        1502,   /* Number of elements */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
@@ -51456,7 +51872,7 @@ typedef enum {
        GCB_V = 13
 } GCB_enum;
 
-static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC 037 */
+static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC 037 */
        GCB_Control,
        GCB_CR,
        GCB_Control,
@@ -52963,410 +53379,6 @@ static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC 037 */
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
 
-#if defined(PERL_IN_REGCOMP_C)
-
-static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC 037 */
-       45,     /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x2BC,
-       0x2BD,
-       0x308,
-       0x309,
-       0x313,
-       0x314,
-       0x342,
-       0x343,
-       0x3AC,
-       0x3AD,
-       0x3AE,
-       0x3AF,
-       0x3B1,
-       0x3B2,
-       0x3B7,
-       0x3B8,
-       0x3B9,
-       0x3BA,
-       0x3C1,
-       0x3C2,
-       0x3C5,
-       0x3C6,
-       0x3C9,
-       0x3CA,
-       0x3CE,
-       0x3CF,
-       0x565,
-       0x566,
-       0x574,
-       0x575,
-       0x57E,
-       0x57F,
-       0x1F00,
-       0x1F08,
-       0x1F20,
-       0x1F28,
-       0x1F60,
-       0x1F68,
-       0x1F70,
-       0x1F71,
-       0x1F74,
-       0x1F75,
-       0x1F7C,
-       0x1F7D
-};
-
-static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC 037 */
-       275,    /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x42,
-       0x4A,
-       0x51,
-       0x5A,
-       0x62,
-       0x6A,
-       0x70,
-       0x79,
-       0x80,
-       0x8A,
-       0x8C,
-       0x8F,
-       0x91,
-       0x9A,
-       0x9C,
-       0x9D,
-       0x9E,
-       0x9F,
-       0xA0,
-       0xA1,
-       0xA2,
-       0xAA,
-       0xAC,
-       0xAF,
-       0xC1,
-       0xCA,
-       0xCB,
-       0xD0,
-       0xD1,
-       0xDA,
-       0xDB,
-       0xE0,
-       0xE2,
-       0xEA,
-       0xEB,
-       0xF0,
-       0xFB,
-       0xFF,
-       0x100,
-       0x131,
-       0x132,
-       0x138,
-       0x139,
-       0x18D,
-       0x18E,
-       0x19B,
-       0x19C,
-       0x1AA,
-       0x1AC,
-       0x1BA,
-       0x1BC,
-       0x1BE,
-       0x1BF,
-       0x1C0,
-       0x1C4,
-       0x221,
-       0x222,
-       0x234,
-       0x23A,
-       0x255,
-       0x256,
-       0x258,
-       0x259,
-       0x25A,
-       0x25B,
-       0x25D,
-       0x260,
-       0x262,
-       0x263,
-       0x264,
-       0x265,
-       0x267,
-       0x268,
-       0x26A,
-       0x26B,
-       0x26D,
-       0x26F,
-       0x270,
-       0x271,
-       0x273,
-       0x275,
-       0x276,
-       0x27D,
-       0x27E,
-       0x280,
-       0x281,
-       0x283,
-       0x284,
-       0x287,
-       0x28D,
-       0x292,
-       0x293,
-       0x29D,
-       0x29F,
-       0x2BC,
-       0x2BD,
-       0x2BE,
-       0x2BF,
-       0x300,
-       0x302,
-       0x307,
-       0x309,
-       0x30A,
-       0x30B,
-       0x30C,
-       0x30D,
-       0x313,
-       0x314,
-       0x331,
-       0x332,
-       0x342,
-       0x343,
-       0x345,
-       0x346,
-       0x370,
-       0x374,
-       0x376,
-       0x378,
-       0x37B,
-       0x37E,
-       0x37F,
-       0x380,
-       0x386,
-       0x387,
-       0x388,
-       0x38B,
-       0x38C,
-       0x38D,
-       0x38E,
-       0x3A2,
-       0x3A3,
-       0x3D2,
-       0x3D5,
-       0x3F6,
-       0x3F7,
-       0x3FC,
-       0x3FD,
-       0x482,
-       0x48A,
-       0x530,
-       0x531,
-       0x557,
-       0x561,
-       0x588,
-       0x10A0,
-       0x10C6,
-       0x10C7,
-       0x10C8,
-       0x10CD,
-       0x10CE,
-       0x13A0,
-       0x13F6,
-       0x13F8,
-       0x13FE,
-       0x1D79,
-       0x1D7A,
-       0x1D7D,
-       0x1D7E,
-       0x1E00,
-       0x1E9C,
-       0x1E9E,
-       0x1E9F,
-       0x1EA0,
-       0x1F16,
-       0x1F18,
-       0x1F1E,
-       0x1F20,
-       0x1F46,
-       0x1F48,
-       0x1F4E,
-       0x1F50,
-       0x1F58,
-       0x1F59,
-       0x1F5A,
-       0x1F5B,
-       0x1F5C,
-       0x1F5D,
-       0x1F5E,
-       0x1F5F,
-       0x1F7E,
-       0x1F80,
-       0x1FB5,
-       0x1FB6,
-       0x1FBD,
-       0x1FBE,
-       0x1FBF,
-       0x1FC2,
-       0x1FC5,
-       0x1FC6,
-       0x1FCD,
-       0x1FD0,
-       0x1FD4,
-       0x1FD6,
-       0x1FDC,
-       0x1FE0,
-       0x1FED,
-       0x1FF2,
-       0x1FF5,
-       0x1FF6,
-       0x1FFD,
-       0x2126,
-       0x2127,
-       0x212A,
-       0x212C,
-       0x2132,
-       0x2133,
-       0x214E,
-       0x214F,
-       0x2160,
-       0x2180,
-       0x2183,
-       0x2185,
-       0x24B6,
-       0x24EA,
-       0x2C00,
-       0x2C2F,
-       0x2C30,
-       0x2C5F,
-       0x2C60,
-       0x2C71,
-       0x2C72,
-       0x2C74,
-       0x2C75,
-       0x2C77,
-       0x2C7E,
-       0x2CE4,
-       0x2CEB,
-       0x2CEF,
-       0x2CF2,
-       0x2CF4,
-       0x2D00,
-       0x2D26,
-       0x2D27,
-       0x2D28,
-       0x2D2D,
-       0x2D2E,
-       0xA640,
-       0xA66E,
-       0xA680,
-       0xA69C,
-       0xA722,
-       0xA730,
-       0xA732,
-       0xA770,
-       0xA779,
-       0xA788,
-       0xA78B,
-       0xA78E,
-       0xA790,
-       0xA794,
-       0xA796,
-       0xA7AE,
-       0xA7B0,
-       0xA7B8,
-       0xAB53,
-       0xAB54,
-       0xAB70,
-       0xABC0,
-       0xFB00,
-       0xFB07,
-       0xFB13,
-       0xFB18,
-       0xFF21,
-       0xFF3B,
-       0xFF41,
-       0xFF5B,
-       0x10400,
-       0x10450,
-       0x10C80,
-       0x10CB3,
-       0x10CC0,
-       0x10CF3,
-       0x118A0,
-       0x118E0
-};
-
-static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC 037 */
-       59,     /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x59,
-       0x5A,
-       0x130,
-       0x131,
-       0x149,
-       0x14A,
-       0x1F0,
-       0x1F1,
-       0x390,
-       0x391,
-       0x3B0,
-       0x3B1,
-       0x587,
-       0x588,
-       0x1E96,
-       0x1E9B,
-       0x1E9E,
-       0x1E9F,
-       0x1F50,
-       0x1F51,
-       0x1F52,
-       0x1F53,
-       0x1F54,
-       0x1F55,
-       0x1F56,
-       0x1F57,
-       0x1F80,
-       0x1FB0,
-       0x1FB2,
-       0x1FB5,
-       0x1FB6,
-       0x1FB8,
-       0x1FBC,
-       0x1FBD,
-       0x1FC2,
-       0x1FC5,
-       0x1FC6,
-       0x1FC8,
-       0x1FCC,
-       0x1FCD,
-       0x1FD2,
-       0x1FD4,
-       0x1FD6,
-       0x1FD8,
-       0x1FE2,
-       0x1FE5,
-       0x1FE6,
-       0x1FE8,
-       0x1FF2,
-       0x1FF5,
-       0x1FF6,
-       0x1FF8,
-       0x1FFC,
-       0x1FFD,
-       0xFB00,
-       0xFB07,
-       0xFB13,
-       0xFB18
-};
-
-#endif /* defined(PERL_IN_REGCOMP_C) */
-
 #if defined(PERL_IN_UTF8_C)
 
 static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC 037 */
@@ -74865,7 +74877,417 @@ static const UV Cased_invlist[] = { /* for EBCDIC POSIX-BC */
        0x1F18A
 };
 
-static const UV Grapheme_Cluster_Break_invlist[] = { /* for EBCDIC POSIX-BC */
+#endif /* defined(PERL_IN_PERL_C) */
+
+#if defined(PERL_IN_REGCOMP_C)
+
+static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC POSIX-BC */
+       45,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x2BC,
+       0x2BD,
+       0x308,
+       0x309,
+       0x313,
+       0x314,
+       0x342,
+       0x343,
+       0x3AC,
+       0x3AD,
+       0x3AE,
+       0x3AF,
+       0x3B1,
+       0x3B2,
+       0x3B7,
+       0x3B8,
+       0x3B9,
+       0x3BA,
+       0x3C1,
+       0x3C2,
+       0x3C5,
+       0x3C6,
+       0x3C9,
+       0x3CA,
+       0x3CE,
+       0x3CF,
+       0x565,
+       0x566,
+       0x574,
+       0x575,
+       0x57E,
+       0x57F,
+       0x1F00,
+       0x1F08,
+       0x1F20,
+       0x1F28,
+       0x1F60,
+       0x1F68,
+       0x1F70,
+       0x1F71,
+       0x1F74,
+       0x1F75,
+       0x1F7C,
+       0x1F7D
+};
+
+static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC POSIX-BC */
+       277,    /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x42,
+       0x4A,
+       0x51,
+       0x5A,
+       0x62,
+       0x6A,
+       0x70,
+       0x79,
+       0x80,
+       0x8A,
+       0x8C,
+       0x8F,
+       0x91,
+       0x9A,
+       0x9C,
+       0x9D,
+       0x9E,
+       0x9F,
+       0xA0,
+       0xA1,
+       0xA2,
+       0xAA,
+       0xAC,
+       0xAF,
+       0xC0,
+       0xCA,
+       0xCB,
+       0xD0,
+       0xD1,
+       0xDA,
+       0xDB,
+       0xE1,
+       0xE2,
+       0xEA,
+       0xEB,
+       0xF0,
+       0xFC,
+       0xFD,
+       0xFE,
+       0xFF,
+       0x100,
+       0x131,
+       0x132,
+       0x138,
+       0x139,
+       0x18D,
+       0x18E,
+       0x19B,
+       0x19C,
+       0x1AA,
+       0x1AC,
+       0x1BA,
+       0x1BC,
+       0x1BE,
+       0x1BF,
+       0x1C0,
+       0x1C4,
+       0x221,
+       0x222,
+       0x234,
+       0x23A,
+       0x255,
+       0x256,
+       0x258,
+       0x259,
+       0x25A,
+       0x25B,
+       0x25D,
+       0x260,
+       0x262,
+       0x263,
+       0x264,
+       0x265,
+       0x267,
+       0x268,
+       0x26A,
+       0x26B,
+       0x26D,
+       0x26F,
+       0x270,
+       0x271,
+       0x273,
+       0x275,
+       0x276,
+       0x27D,
+       0x27E,
+       0x280,
+       0x281,
+       0x283,
+       0x284,
+       0x287,
+       0x28D,
+       0x292,
+       0x293,
+       0x29D,
+       0x29F,
+       0x2BC,
+       0x2BD,
+       0x2BE,
+       0x2BF,
+       0x300,
+       0x302,
+       0x307,
+       0x309,
+       0x30A,
+       0x30B,
+       0x30C,
+       0x30D,
+       0x313,
+       0x314,
+       0x331,
+       0x332,
+       0x342,
+       0x343,
+       0x345,
+       0x346,
+       0x370,
+       0x374,
+       0x376,
+       0x378,
+       0x37B,
+       0x37E,
+       0x37F,
+       0x380,
+       0x386,
+       0x387,
+       0x388,
+       0x38B,
+       0x38C,
+       0x38D,
+       0x38E,
+       0x3A2,
+       0x3A3,
+       0x3D2,
+       0x3D5,
+       0x3F6,
+       0x3F7,
+       0x3FC,
+       0x3FD,
+       0x482,
+       0x48A,
+       0x530,
+       0x531,
+       0x557,
+       0x561,
+       0x588,
+       0x10A0,
+       0x10C6,
+       0x10C7,
+       0x10C8,
+       0x10CD,
+       0x10CE,
+       0x13A0,
+       0x13F6,
+       0x13F8,
+       0x13FE,
+       0x1D79,
+       0x1D7A,
+       0x1D7D,
+       0x1D7E,
+       0x1E00,
+       0x1E9C,
+       0x1E9E,
+       0x1E9F,
+       0x1EA0,
+       0x1F16,
+       0x1F18,
+       0x1F1E,
+       0x1F20,
+       0x1F46,
+       0x1F48,
+       0x1F4E,
+       0x1F50,
+       0x1F58,
+       0x1F59,
+       0x1F5A,
+       0x1F5B,
+       0x1F5C,
+       0x1F5D,
+       0x1F5E,
+       0x1F5F,
+       0x1F7E,
+       0x1F80,
+       0x1FB5,
+       0x1FB6,
+       0x1FBD,
+       0x1FBE,
+       0x1FBF,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FCD,
+       0x1FD0,
+       0x1FD4,
+       0x1FD6,
+       0x1FDC,
+       0x1FE0,
+       0x1FED,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FFD,
+       0x2126,
+       0x2127,
+       0x212A,
+       0x212C,
+       0x2132,
+       0x2133,
+       0x214E,
+       0x214F,
+       0x2160,
+       0x2180,
+       0x2183,
+       0x2185,
+       0x24B6,
+       0x24EA,
+       0x2C00,
+       0x2C2F,
+       0x2C30,
+       0x2C5F,
+       0x2C60,
+       0x2C71,
+       0x2C72,
+       0x2C74,
+       0x2C75,
+       0x2C77,
+       0x2C7E,
+       0x2CE4,
+       0x2CEB,
+       0x2CEF,
+       0x2CF2,
+       0x2CF4,
+       0x2D00,
+       0x2D26,
+       0x2D27,
+       0x2D28,
+       0x2D2D,
+       0x2D2E,
+       0xA640,
+       0xA66E,
+       0xA680,
+       0xA69C,
+       0xA722,
+       0xA730,
+       0xA732,
+       0xA770,
+       0xA779,
+       0xA788,
+       0xA78B,
+       0xA78E,
+       0xA790,
+       0xA794,
+       0xA796,
+       0xA7AE,
+       0xA7B0,
+       0xA7B8,
+       0xAB53,
+       0xAB54,
+       0xAB70,
+       0xABC0,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18,
+       0xFF21,
+       0xFF3B,
+       0xFF41,
+       0xFF5B,
+       0x10400,
+       0x10450,
+       0x10C80,
+       0x10CB3,
+       0x10CC0,
+       0x10CF3,
+       0x118A0,
+       0x118E0
+};
+
+static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC POSIX-BC */
+       59,     /* Number of elements */
+       148565664, /* Version and data structure type */
+       1,      /* 0 if the list starts at 0;
+                  1 if it starts at the element beyond 0 */
+       0x0,
+       0x59,
+       0x5A,
+       0x130,
+       0x131,
+       0x149,
+       0x14A,
+       0x1F0,
+       0x1F1,
+       0x390,
+       0x391,
+       0x3B0,
+       0x3B1,
+       0x587,
+       0x588,
+       0x1E96,
+       0x1E9B,
+       0x1E9E,
+       0x1E9F,
+       0x1F50,
+       0x1F51,
+       0x1F52,
+       0x1F53,
+       0x1F54,
+       0x1F55,
+       0x1F56,
+       0x1F57,
+       0x1F80,
+       0x1FB0,
+       0x1FB2,
+       0x1FB5,
+       0x1FB6,
+       0x1FB8,
+       0x1FBC,
+       0x1FBD,
+       0x1FC2,
+       0x1FC5,
+       0x1FC6,
+       0x1FC8,
+       0x1FCC,
+       0x1FCD,
+       0x1FD2,
+       0x1FD4,
+       0x1FD6,
+       0x1FD8,
+       0x1FE2,
+       0x1FE5,
+       0x1FE6,
+       0x1FE8,
+       0x1FF2,
+       0x1FF5,
+       0x1FF6,
+       0x1FF8,
+       0x1FFC,
+       0x1FFD,
+       0xFB00,
+       0xFB07,
+       0xFB13,
+       0xFB18
+};
+
+#endif /* defined(PERL_IN_REGCOMP_C) */
+
+#if defined(PERL_IN_PERL_C)
+
+static const UV _Perl_GCB_invlist[] = { /* for EBCDIC POSIX-BC */
        1502,   /* Number of elements */
        148565664, /* Version and data structure type */
        0,      /* 0 if the list starts at 0;
@@ -76397,7 +76819,7 @@ typedef enum {
        GCB_V = 13
 } GCB_enum;
 
-static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC POSIX-BC */
+static const GCB_enum _Perl_GCB_invmap[] = { /* for EBCDIC POSIX-BC */
        GCB_Control,
        GCB_CR,
        GCB_Control,
@@ -77904,412 +78326,6 @@ static const GCB_enum Grapheme_Cluster_Break_invmap[] = { /* for EBCDIC POSIX-BC
 
 #endif /* defined(PERL_IN_REGEXEC_C) */
 
-#if defined(PERL_IN_REGCOMP_C)
-
-static const UV NonL1_Perl_Non_Final_Folds_invlist[] = { /* for EBCDIC POSIX-BC */
-       45,     /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x2BC,
-       0x2BD,
-       0x308,
-       0x309,
-       0x313,
-       0x314,
-       0x342,
-       0x343,
-       0x3AC,
-       0x3AD,
-       0x3AE,
-       0x3AF,
-       0x3B1,
-       0x3B2,
-       0x3B7,
-       0x3B8,
-       0x3B9,
-       0x3BA,
-       0x3C1,
-       0x3C2,
-       0x3C5,
-       0x3C6,
-       0x3C9,
-       0x3CA,
-       0x3CE,
-       0x3CF,
-       0x565,
-       0x566,
-       0x574,
-       0x575,
-       0x57E,
-       0x57F,
-       0x1F00,
-       0x1F08,
-       0x1F20,
-       0x1F28,
-       0x1F60,
-       0x1F68,
-       0x1F70,
-       0x1F71,
-       0x1F74,
-       0x1F75,
-       0x1F7C,
-       0x1F7D
-};
-
-static const UV _Perl_Any_Folds_invlist[] = { /* for EBCDIC POSIX-BC */
-       277,    /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x42,
-       0x4A,
-       0x51,
-       0x5A,
-       0x62,
-       0x6A,
-       0x70,
-       0x79,
-       0x80,
-       0x8A,
-       0x8C,
-       0x8F,
-       0x91,
-       0x9A,
-       0x9C,
-       0x9D,
-       0x9E,
-       0x9F,
-       0xA0,
-       0xA1,
-       0xA2,
-       0xAA,
-       0xAC,
-       0xAF,
-       0xC0,
-       0xCA,
-       0xCB,
-       0xD0,
-       0xD1,
-       0xDA,
-       0xDB,
-       0xE1,
-       0xE2,
-       0xEA,
-       0xEB,
-       0xF0,
-       0xFC,
-       0xFD,
-       0xFE,
-       0xFF,
-       0x100,
-       0x131,
-       0x132,
-       0x138,
-       0x139,
-       0x18D,
-       0x18E,
-       0x19B,
-       0x19C,
-       0x1AA,
-       0x1AC,
-       0x1BA,
-       0x1BC,
-       0x1BE,
-       0x1BF,
-       0x1C0,
-       0x1C4,
-       0x221,
-       0x222,
-       0x234,
-       0x23A,
-       0x255,
-       0x256,
-       0x258,
-       0x259,
-       0x25A,
-       0x25B,
-       0x25D,
-       0x260,
-       0x262,
-       0x263,
-       0x264,
-       0x265,
-       0x267,
-       0x268,
-       0x26A,
-       0x26B,
-       0x26D,
-       0x26F,
-       0x270,
-       0x271,
-       0x273,
-       0x275,
-       0x276,
-       0x27D,
-       0x27E,
-       0x280,
-       0x281,
-       0x283,
-       0x284,
-       0x287,
-       0x28D,
-       0x292,
-       0x293,
-       0x29D,
-       0x29F,
-       0x2BC,
-       0x2BD,
-       0x2BE,
-       0x2BF,
-       0x300,
-       0x302,
-       0x307,
-       0x309,
-       0x30A,
-       0x30B,
-       0x30C,
-       0x30D,
-       0x313,
-       0x314,
-       0x331,
-       0x332,
-       0x342,
-       0x343,
-       0x345,
-       0x346,
-       0x370,
-       0x374,
-       0x376,
-       0x378,
-       0x37B,
-       0x37E,
-       0x37F,
-       0x380,
-       0x386,
-       0x387,
-       0x388,
-       0x38B,
-       0x38C,
-       0x38D,
-       0x38E,
-       0x3A2,
-       0x3A3,
-       0x3D2,
-       0x3D5,
-       0x3F6,
-       0x3F7,
-       0x3FC,
-       0x3FD,
-       0x482,
-       0x48A,
-       0x530,
-       0x531,
-       0x557,
-       0x561,
-       0x588,
-       0x10A0,
-       0x10C6,
-       0x10C7,
-       0x10C8,
-       0x10CD,
-       0x10CE,
-       0x13A0,
-       0x13F6,
-       0x13F8,
-       0x13FE,
-       0x1D79,
-       0x1D7A,
-       0x1D7D,
-       0x1D7E,
-       0x1E00,
-       0x1E9C,
-       0x1E9E,
-       0x1E9F,
-       0x1EA0,
-       0x1F16,
-       0x1F18,
-       0x1F1E,
-       0x1F20,
-       0x1F46,
-       0x1F48,
-       0x1F4E,
-       0x1F50,
-       0x1F58,
-       0x1F59,
-       0x1F5A,
-       0x1F5B,
-       0x1F5C,
-       0x1F5D,
-       0x1F5E,
-       0x1F5F,
-       0x1F7E,
-       0x1F80,
-       0x1FB5,
-       0x1FB6,
-       0x1FBD,
-       0x1FBE,
-       0x1FBF,
-       0x1FC2,
-       0x1FC5,
-       0x1FC6,
-       0x1FCD,
-       0x1FD0,
-       0x1FD4,
-       0x1FD6,
-       0x1FDC,
-       0x1FE0,
-       0x1FED,
-       0x1FF2,
-       0x1FF5,
-       0x1FF6,
-       0x1FFD,
-       0x2126,
-       0x2127,
-       0x212A,
-       0x212C,
-       0x2132,
-       0x2133,
-       0x214E,
-       0x214F,
-       0x2160,
-       0x2180,
-       0x2183,
-       0x2185,
-       0x24B6,
-       0x24EA,
-       0x2C00,
-       0x2C2F,
-       0x2C30,
-       0x2C5F,
-       0x2C60,
-       0x2C71,
-       0x2C72,
-       0x2C74,
-       0x2C75,
-       0x2C77,
-       0x2C7E,
-       0x2CE4,
-       0x2CEB,
-       0x2CEF,
-       0x2CF2,
-       0x2CF4,
-       0x2D00,
-       0x2D26,
-       0x2D27,
-       0x2D28,
-       0x2D2D,
-       0x2D2E,
-       0xA640,
-       0xA66E,
-       0xA680,
-       0xA69C,
-       0xA722,
-       0xA730,
-       0xA732,
-       0xA770,
-       0xA779,
-       0xA788,
-       0xA78B,
-       0xA78E,
-       0xA790,
-       0xA794,
-       0xA796,
-       0xA7AE,
-       0xA7B0,
-       0xA7B8,
-       0xAB53,
-       0xAB54,
-       0xAB70,
-       0xABC0,
-       0xFB00,
-       0xFB07,
-       0xFB13,
-       0xFB18,
-       0xFF21,
-       0xFF3B,
-       0xFF41,
-       0xFF5B,
-       0x10400,
-       0x10450,
-       0x10C80,
-       0x10CB3,
-       0x10CC0,
-       0x10CF3,
-       0x118A0,
-       0x118E0
-};
-
-static const UV _Perl_Folds_To_Multi_Char_invlist[] = { /* for EBCDIC POSIX-BC */
-       59,     /* Number of elements */
-       148565664, /* Version and data structure type */
-       1,      /* 0 if the list starts at 0;
-                  1 if it starts at the element beyond 0 */
-       0x0,
-       0x59,
-       0x5A,
-       0x130,
-       0x131,
-       0x149,
-       0x14A,
-       0x1F0,
-       0x1F1,
-       0x390,
-       0x391,
-       0x3B0,
-       0x3B1,
-       0x587,
-       0x588,
-       0x1E96,
-       0x1E9B,
-       0x1E9E,
-       0x1E9F,
-       0x1F50,
-       0x1F51,
-       0x1F52,
-       0x1F53,
-       0x1F54,
-       0x1F55,
-       0x1F56,
-       0x1F57,
-       0x1F80,
-       0x1FB0,
-       0x1FB2,
-       0x1FB5,
-       0x1FB6,
-       0x1FB8,
-       0x1FBC,
-       0x1FBD,
-       0x1FC2,
-       0x1FC5,
-       0x1FC6,
-       0x1FC8,
-       0x1FCC,
-       0x1FCD,
-       0x1FD2,
-       0x1FD4,
-       0x1FD6,
-       0x1FD8,
-       0x1FE2,
-       0x1FE5,
-       0x1FE6,
-       0x1FE8,
-       0x1FF2,
-       0x1FF5,
-       0x1FF6,
-       0x1FF8,
-       0x1FFC,
-       0x1FFD,
-       0xFB00,
-       0xFB07,
-       0xFB13,
-       0xFB18
-};
-
-#endif /* defined(PERL_IN_REGCOMP_C) */
-
 #if defined(PERL_IN_UTF8_C)
 
 static const UV _Perl_IDCont_invlist[] = { /* for EBCDIC POSIX-BC */
@@ -99521,8 +99537,8 @@ static const UV XPosixXDigit_invlist[] = { /* for EBCDIC POSIX-BC */
  * 1a0687fb9c6c4567e853913549df0944fe40821279a3e9cdaa6ab8679bc286fd lib/unicore/extracted/DLineBreak.txt
  * 40bcfed3ca727c19e1331f6c33806231d5f7eeeabd2e6a9e06a3740c85d0c250 lib/unicore/extracted/DNumType.txt
  * a18d502bad39d527ac5586d7bc93e29f565859e3bcc24ada627eff606d6f5fed lib/unicore/extracted/DNumValues.txt
- * 445c2d31d4731031ab802208b4b827b140c8db348c23d36094050d3607c9339f lib/unicore/mktables
+ * 96205213df4d25074497ca2449802bd4fb51e2a31cfff389fd5197a933bef455 lib/unicore/mktables
  * 462c9aaa608fb2014cd9649af1c5c009485c60b9c8b15b89401fdc10cf6161c6 lib/unicore/version
  * c6884f4d629f04d1316f3476cb1050b6a1b98ca30c903262955d4eae337c6b1e regen/charset_translations.pl
- * 7b6f61662df48e0cbfb234a926e02e5cb9468af052f7f9feb84285996f30df09 regen/mk_invlists.pl
+ * 95c35beb704819594c061545c9fac9868baaf44dbf01d648657395ab846cd14f regen/mk_invlists.pl
  * ex: set ro: */
index 7507e08..e285a34 100644 (file)
@@ -9878,13 +9878,6 @@ sub finish_property_setup {
         Property->new('JSN', Full_Name => 'Jamo_Short_Name');
     }
 
-    # This property must be defined in all releases so we can generate
-    # the tables from it to make regex \X work, but suppress its output so
-    # isn't application visible prior to releases where it should be
-    if (! defined property_ref('GCB')) {
-        Property->new('GCB', Full_Name => 'Grapheme_Cluster_Break',
-                      Fate => $PLACEHOLDER);
-    }
     # These are used so much, that we set globals for them.
     $gc = property_ref('General_Category');
     $block = property_ref('Block');
@@ -10214,16 +10207,16 @@ END
     }
     if ($v_version lt 4.1.0) {
         $file->insert_lines(split /\n/, <<'END'
-GCB; CN                               ; Control
-GCB; CR                               ; CR
-GCB; EX                               ; Extend
-GCB; L                                ; L
-GCB; LF                               ; LF
-GCB; LV                               ; LV
-GCB; LVT                              ; LVT
-GCB; T                                ; T
-GCB; V                                ; V
-GCB; XX                               ; Other
+_Perl_GCB; CN                               ; Control
+_Perl_GCB; CR                               ; CR
+_Perl_GCB; EX                               ; Extend
+_Perl_GCB; L                                ; L
+_Perl_GCB; LF                               ; LF
+_Perl_GCB; LV                               ; LV
+_Perl_GCB; LVT                              ; LVT
+_Perl_GCB; T                                ; T
+_Perl_GCB; V                                ; V
+_Perl_GCB; XX                               ; Other
 END
         );
     }
@@ -13105,7 +13098,7 @@ sub generate_GCB {
         generate_hst($file);
     }
 
-    return;
+    main::process_generic_property_file($file);
 }
 
 sub setup_early_name_alias {
@@ -18810,12 +18803,10 @@ my @input_file_objects = (
                     Property => 'Word_Break',
                     Has_Missings_Defaults => $NOT_IGNORED,
                    ),
-    Input_file->new("$AUXILIARY/GraphemeBreakProperty.txt", v0,
+    Input_file->new("$AUXILIARY/GraphemeBreakProperty.txt", v4.1,
+                    Early => [ \&generate_GCB, '_Perl_GCB' ],
                     Property => 'Grapheme_Cluster_Break',
                     Has_Missings_Defaults => $NOT_IGNORED,
-                    Pre_Handler => ($v_version lt v4.1.0)
-                                   ? \&generate_GCB
-                                   : undef,
                    ),
     Input_file->new("$AUXILIARY/GCBTest.txt", v4.1.0,
                     Handler => \&process_GCB_test,
diff --git a/perl.c b/perl.c
index cbb66e0..37b14c5 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -389,7 +389,7 @@ perl_construct(pTHXx)
     PL_XPosix_ptrs[_CC_VERTSPACE] = _new_invlist_C_array(VertSpace_invlist);
     PL_XPosix_ptrs[_CC_WORDCHAR] = _new_invlist_C_array(XPosixWord_invlist);
     PL_XPosix_ptrs[_CC_XDIGIT] = _new_invlist_C_array(XPosixXDigit_invlist);
-    PL_GCB_invlist = _new_invlist_C_array(Grapheme_Cluster_Break_invlist);
+    PL_GCB_invlist = _new_invlist_C_array(_Perl_GCB_invlist);
     PL_SB_invlist = _new_invlist_C_array(Sentence_Break_invlist);
     PL_WB_invlist = _new_invlist_C_array(Word_Break_invlist);
 
index cee7ef6..c4515fc 100644 (file)
  * 1a0687fb9c6c4567e853913549df0944fe40821279a3e9cdaa6ab8679bc286fd lib/unicore/extracted/DLineBreak.txt
  * 40bcfed3ca727c19e1331f6c33806231d5f7eeeabd2e6a9e06a3740c85d0c250 lib/unicore/extracted/DNumType.txt
  * a18d502bad39d527ac5586d7bc93e29f565859e3bcc24ada627eff606d6f5fed lib/unicore/extracted/DNumValues.txt
- * 445c2d31d4731031ab802208b4b827b140c8db348c23d36094050d3607c9339f lib/unicore/mktables
+ * 96205213df4d25074497ca2449802bd4fb51e2a31cfff389fd5197a933bef455 lib/unicore/mktables
  * 462c9aaa608fb2014cd9649af1c5c009485c60b9c8b15b89401fdc10cf6161c6 lib/unicore/version
  * c6884f4d629f04d1316f3476cb1050b6a1b98ca30c903262955d4eae337c6b1e regen/charset_translations.pl
  * d9c04ac46bdd81bb3e26519f2b8eb6242cb12337205add3f7cf092b0c58dccc4 regen/regcharclass.pl
index 3c7e42c..8d691ee 100644 (file)
@@ -234,8 +234,8 @@ sub output_invmap ($$$$$$$) {
     my $name_prefix;
 
     if ($input_format eq 's') {
-        $prop_name = (prop_aliases($prop_name))[1]; # Get full name
-        my $short_name = (prop_aliases($prop_name))[0];
+        $prop_name = (prop_aliases($prop_name))[1] // $prop_name =~ s/^_Perl_//r; # Get full name
+        my $short_name = (prop_aliases($prop_name))[0] // $prop_name;
             my @enums = prop_values($prop_name);
             if (! @enums) {
                 die "Only enum properties are currently handled; '$prop_name' isn't one";
@@ -266,7 +266,8 @@ sub output_invmap ($$$$$$$) {
                 # Assign a value to each element of the enum.  The default
                 # value always gets 0; the others are arbitrarily assigned.
                 my $enum_val = 0;
-                $default = prop_value_aliases($prop_name, $default);
+                my $canonical_default = prop_value_aliases($prop_name, $default);
+                $default = $canonical_default if defined $canonical_default;
                 $enums{$default} = $enum_val++;
                 for my $enum (@enums) {
                     $enums{$enum} = $enum_val++ unless exists $enums{$enum};
@@ -314,7 +315,9 @@ sub output_invmap ($$$$$$$) {
     # The main body are the scalars passed in to this routine.
     for my $i (0 .. $count - 1) {
         my $element = $invmap->[$i];
-        $element = $name_prefix . prop_value_aliases($prop_name, $element);
+        my $full_element_name = prop_value_aliases($prop_name, $element);
+        $element = $full_element_name if defined $full_element_name;
+        $element = $name_prefix . $element;
         print $out_fh "\t$element";
         print $out_fh "," if $i < $count - 1;
         print $out_fh  "\n";
@@ -447,7 +450,7 @@ for my $charset (get_supported_code_pages()) {
                              &UpperLatin1
                              _Perl_IDStart
                              _Perl_IDCont
-                             Grapheme_Cluster_Break,EDGE
+                             _Perl_GCB,EDGE
                              Word_Break,EDGE,UNKNOWN
                              Sentence_Break,EDGE
                            )
index 0ea2aa0..5beed03 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -1753,7 +1753,7 @@ REXEC_FBC_SCAN( /* Loops while (s < strend) */                 \
 #define getGCB_VAL_CP(cp)                                                      \
           _generic_GET_BREAK_VAL_CP(                                           \
                                     PL_GCB_invlist,                            \
-                                    Grapheme_Cluster_Break_invmap,             \
+                                    _Perl_GCB_invmap,                          \
                                     (cp))
 
 /* Returns the GCB value for the first code point in the UTF-8 encoded string