"Fossies" - the Fresh Open Source Software Archive

Member "install-tl-20200916/tlpkg/tlperl/lib/CORE/regcharclass.h" (7 Mar 2020, 140155 Bytes) of package /windows/misc/install-tl.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 /* -*- buffer-read-only: t -*-
    2  *
    3  *    regcharclass.h
    4  *
    5  *    Copyright (C) 2007, 2011 by Larry Wall and others
    6  *
    7  *    You may distribute under the terms of either the GNU General Public
    8  *    License or the Artistic License, as specified in the README file.
    9  *
   10  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
   11  * This file is built by regen/regcharclass.pl.
   12  * Any changes made here will be lost!
   13  * WARNING: These macros are for internal Perl core use only, and may be
   14  * changed or removed without notice.
   15  */
   16 
   17 
   18 #ifndef PERL_REGCHARCLASS_H_ /* Guard against nested #includes */
   19 #define PERL_REGCHARCLASS_H_
   20 
   21 #if 'A' == 65 /* ASCII/Latin1 */
   22 /*
   23     LNBREAK: Line Break: \R
   24 
   25     "\x0D\x0A"      # CRLF - Network (Windows) line ending
   26     \p{VertSpace}
   27 */
   28 /*** GENERATED CODE ***/
   29 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
   30 ( ((e)-(s) > 2) ?                                                           \
   31     ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1                       \
   32     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
   33     ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 )                           \
   34     : ( is_utf8 ) ?                                                         \
   35     ( ( 0xC2 == ((const U8*)s)[0] ) ?                                   \
   36         ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 )                       \
   37     : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )\
   38     : ( 0x85 == ((const U8*)s)[0] ) )                                       \
   39 : ((e)-(s) > 1) ?                                                           \
   40     ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1                       \
   41     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
   42     ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 )                           \
   43     : ( is_utf8 ) ?                                                         \
   44     ( ( ( 0xC2 == ((const U8*)s)[0] ) && ( 0x85 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
   45     : ( 0x85 == ((const U8*)s)[0] ) )                                       \
   46 : ((e)-(s) > 0) ?                                                           \
   47     ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0D ) ) ? 1                       \
   48     : ( !( is_utf8 ) ) ?                                                    \
   49     ( 0x85 == ((const U8*)s)[0] )                                       \
   50     : 0 )                                                                   \
   51 : 0 )
   52 
   53 /*** GENERATED CODE ***/
   54 #define is_LNBREAK_utf8_safe(s,e)                                           \
   55 ( ((e)-(s) > 2) ?                                                           \
   56     ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1                       \
   57     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
   58     ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 )                           \
   59     : ( 0xC2 == ((const U8*)s)[0] ) ?                                       \
   60     ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 )                           \
   61     : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )\
   62 : ((e)-(s) > 1) ?                                                           \
   63     ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1                       \
   64     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
   65     ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 )                           \
   66     : ( ( 0xC2 == ((const U8*)s)[0] ) && ( 0x85 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
   67 : ((e)-(s) > 0) ?                                                           \
   68     ( inRANGE(((const U8*)s)[0], 0x0A, 0x0D ) )                             \
   69 : 0 )
   70 
   71 /*** GENERATED CODE ***/
   72 #define is_LNBREAK_latin1_safe(s,e)                                         \
   73 ( ((e)-(s) > 1) ?                                                           \
   74     ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) || 0x85 == ((const U8*)s)[0] ) ? 1\
   75     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
   76     ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 )                           \
   77     : 0 )                                                                   \
   78 : ((e)-(s) > 0) ?                                                           \
   79     ( inRANGE(((const U8*)s)[0], 0x0A, 0x0D ) || 0x85 == ((const U8*)s)[0] )\
   80 : 0 )
   81 
   82 /*
   83     HORIZWS: Horizontal Whitespace: \h \H
   84 
   85     \p{HorizSpace}
   86 */
   87 /*** GENERATED CODE ***/
   88 #define is_HORIZWS_high(s)                                                  \
   89 ( ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
   90     ( ( ( 0x9A == ((const U8*)s)[1] ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
   91 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
   92     ( ( 0x80 == ((const U8*)s)[1] ) ?                                       \
   93     ( ( inRANGE(((const U8*)s)[2], 0x80, 0x8A ) || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
   94     : ( ( 0x81 == ((const U8*)s)[1] ) && ( 0x9F == ((const U8*)s)[2] ) ) ? 3 : 0 )\
   95 : ( ( ( 0xE3 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )
   96 
   97 /*** GENERATED CODE ***/
   98 #define is_HORIZWS_cp_high(cp)                                              \
   99 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
  100 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp &&                           \
  101 ( 0x202F == cp || ( 0x202F < cp &&                                          \
  102 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
  103 
  104 /*
  105     VERTWS: Vertical Whitespace: \v \V
  106 
  107     \p{VertSpace}
  108 */
  109 /*** GENERATED CODE ***/
  110 #define is_VERTWS_high(s)                                                   \
  111 ( ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )
  112 
  113 /*** GENERATED CODE ***/
  114 #define is_VERTWS_cp_high(cp)                                               \
  115 ( 0x2028 == cp || 0x2029 == cp )
  116 
  117 /*
  118     XDIGIT: Hexadecimal digits
  119 
  120     \p{XDigit}
  121 */
  122 /*** GENERATED CODE ***/
  123 #define is_XDIGIT_high(s)                                                   \
  124 ( ( 0xEF == ((const U8*)s)[0] ) ?                                           \
  125     ( ( 0xBC == ((const U8*)s)[1] ) ?                                       \
  126     ( ( inRANGE(((const U8*)s)[2], 0x90, 0x99 ) || inRANGE(((const U8*)s)[2], 0xA1, 0xA6 ) ) ? 3 : 0 )\
  127     : ( ( 0xBD == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x81, 0x86 ) ) ) ? 3 : 0 )\
  128 : 0 )
  129 
  130 /*** GENERATED CODE ***/
  131 #define is_XDIGIT_cp_high(cp)                                               \
  132 ( inRANGE(cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp &&                           \
  133 ( inRANGE(cp, 0xFF21, 0xFF26) || inRANGE(cp, 0xFF41, 0xFF46) ) ) )
  134 
  135 /*
  136     XPERLSPACE: \p{XPerlSpace}
  137 
  138     \p{XPerlSpace}
  139 */
  140 /*** GENERATED CODE ***/
  141 #define is_XPERLSPACE_high(s)                                               \
  142 ( ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
  143     ( ( ( 0x9A == ((const U8*)s)[1] ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  144 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
  145     ( ( 0x80 == ((const U8*)s)[1] ) ?                                       \
  146     ( ( inRANGE(((const U8*)s)[2], 0x80, 0x8A ) || inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
  147     : ( ( 0x81 == ((const U8*)s)[1] ) && ( 0x9F == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  148 : ( ( ( 0xE3 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )
  149 
  150 /*** GENERATED CODE ***/
  151 #define is_XPERLSPACE_cp_high(cp)                                           \
  152 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
  153 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp &&                           \
  154 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
  155 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
  156 ( 0x202F == cp || ( 0x202F < cp &&                                          \
  157 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
  158 
  159 /*
  160     NONCHAR: Non character code points
  161 
  162     \p{_Perl_Nchar}
  163 */
  164 /*** GENERATED CODE ***/
  165 #define is_NONCHAR_utf8_safe(s,e)                                           \
  166 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xEF == ((const U8*)s)[0] ) ?\
  167         ( ( 0xB7 == ((const U8*)s)[1] ) ?                               \
  168         ( ( inRANGE(((const U8*)s)[2], 0x90, 0xAF ) ) ? 3 : 0 )     \
  169         : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xBE, 0xBF ) ) ) ? 3 : 0 )\
  170     : ( 0xF0 == ((const U8*)s)[0] ) ?                                   \
  171         ( ( ( ( ((const U8*)s)[1] == 0x9F || ( ( ((const U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xBE, 0xBF ) ) ) ? 4 : 0 )\
  172     : ( inRANGE(((const U8*)s)[0], 0xF1, 0xF3 ) ) ?                     \
  173         ( ( ( ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xBE, 0xBF ) ) ) ? 4 : 0 )\
  174     : ( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( 0x8F == ((const U8*)s)[1] ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xBE, 0xBF ) ) ) ? 4 : 0 ) : 0 )
  175 
  176 /*
  177     SURROGATE: Surrogate code points
  178 
  179     \p{_Perl_Surrogate}
  180 */
  181 /*** GENERATED CODE ***/
  182 #define is_SURROGATE_utf8_safe(s,e)                                         \
  183 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0xA0, 0xBF ) ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0xBF ) ) ) ? 3 : 0 )
  184 
  185 /*
  186     QUOTEMETA: Meta-characters that \Q should quote
  187 
  188     \p{_Perl_Quotemeta}
  189 */
  190 /*** GENERATED CODE ***/
  191 #define is_QUOTEMETA_high(s)                                                \
  192 ( ( 0xCD == ((const U8*)s)[0] ) ?                                           \
  193     ( ( 0x8F == ((const U8*)s)[1] ) ? 2 : 0 )                               \
  194 : ( 0xD8 == ((const U8*)s)[0] ) ?                                           \
  195     ( ( 0x9C == ((const U8*)s)[1] ) ? 2 : 0 )                               \
  196 : ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
  197     ( ( 0x85 == ((const U8*)s)[1] ) ?                                       \
  198     ( ( inRANGE(((const U8*)s)[2], 0x9F, 0xA0 ) ) ? 3 : 0 )             \
  199     : ( 0x9A == ((const U8*)s)[1] ) ?                                       \
  200     ( ( 0x80 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
  201     : ( 0x9E == ((const U8*)s)[1] ) ?                                       \
  202     ( ( inRANGE(((const U8*)s)[2], 0xB4, 0xB5 ) ) ? 3 : 0 )             \
  203     : ( ( 0xA0 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x8B, 0x8E ) ) ) ? 3 : 0 )\
  204 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
  205     ( ( 0x80 == ((const U8*)s)[1] ) ?                                       \
  206     ( ( inRANGE(((const U8*)s)[2], 0x80, 0xBE ) ) ? 3 : 0 )             \
  207     : ( 0x81 == ((const U8*)s)[1] ) ?                                       \
  208     ( ( inRANGE(((const U8*)s)[2], 0x81, 0x93 ) || inRANGE(((const U8*)s)[2], 0x95, 0xAF ) ) ? 3 : 0 )\
  209     : ( 0x86 == ((const U8*)s)[1] ) ?                                       \
  210     ( ( inRANGE(((const U8*)s)[2], 0x90, 0xBF ) ) ? 3 : 0 )             \
  211     : ( inRANGE(((const U8*)s)[1], 0x87, 0x90 ) || inRANGE(((const U8*)s)[1], 0x94, 0x9C ) || inRANGE(((const U8*)s)[1], 0x9F, 0xAF ) || inRANGE(((const U8*)s)[1], 0xB8, 0xB9 ) ) ?\
  212     3                                                                   \
  213     : ( 0x91 == ((const U8*)s)[1] ) ?                                       \
  214     ( ( inRANGE(((const U8*)s)[2], 0x80, 0x9F ) ) ? 3 : 0 )             \
  215     : ( 0x9D == ((const U8*)s)[1] ) ?                                       \
  216     ( ( inRANGE(((const U8*)s)[2], 0x80, 0xB5 ) ) ? 3 : 0 )             \
  217     : ( ( 0x9E == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x94, 0xBF ) ) ) ? 3 : 0 )\
  218 : ( 0xE3 == ((const U8*)s)[0] ) ?                                           \
  219     ( ( 0x80 == ((const U8*)s)[1] ) ?                                       \
  220     ( ( inRANGE(((const U8*)s)[2], 0x80, 0x83 ) || inRANGE(((const U8*)s)[2], 0x88, 0xA0 ) || 0xB0 == ((const U8*)s)[2] ) ? 3 : 0 )\
  221     : ( ( 0x85 == ((const U8*)s)[1] ) && ( 0xA4 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  222 : ( 0xEF == ((const U8*)s)[0] ) ?                                           \
  223     ( ( 0xB4 == ((const U8*)s)[1] ) ?                                       \
  224     ( ( inRANGE(((const U8*)s)[2], 0xBE, 0xBF ) ) ? 3 : 0 )             \
  225     : ( 0xB8 == ((const U8*)s)[1] ) ?                                       \
  226     ( ( inRANGE(((const U8*)s)[2], 0x80, 0x8F ) ) ? 3 : 0 )             \
  227     : ( 0xB9 == ((const U8*)s)[1] ) ?                                       \
  228     ( ( inRANGE(((const U8*)s)[2], 0x85, 0x86 ) ) ? 3 : 0 )             \
  229     : ( 0xBB == ((const U8*)s)[1] ) ?                                       \
  230     ( ( 0xBF == ((const U8*)s)[2] ) ? 3 : 0 )                           \
  231     : ( 0xBE == ((const U8*)s)[1] ) ?                                       \
  232     ( ( 0xA0 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
  233     : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xB0, 0xB8 ) ) ) ? 3 : 0 )\
  234 : ( 0xF0 == ((const U8*)s)[0] ) ?                                           \
  235     ( ( 0x9B == ((const U8*)s)[1] ) ?                                       \
  236     ( ( ( 0xB2 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0xA0, 0xA3 ) ) ) ? 4 : 0 )\
  237     : ( ( ( 0x9D == ((const U8*)s)[1] ) && ( 0x85 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xB3, 0xBA ) ) ) ? 4 : 0 )\
  238 : ( ( 0xF3 == ((const U8*)s)[0] ) && ( 0xA0 == ((const U8*)s)[1] ) ) ? 4 : 0 )
  239 
  240 /*
  241     MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
  242 
  243     &regcharclass_multi_char_folds::multi_char_folds(1)
  244 */
  245 /*** GENERATED CODE ***/
  246 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
  247 ( ( 0x61 == ((const U8*)s)[0] ) ?                                           \
  248     ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  249     : ( 0x66 == ((const U8*)s)[0] ) ?                                       \
  250     ( ( 0x66 == ((const U8*)s)[1] ) ?                                   \
  251         ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
  252     : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
  253     : ( 0x68 == ((const U8*)s)[0] ) ?                                       \
  254     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  255     : ( 0x69 == ((const U8*)s)[0] ) ?                                       \
  256     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  257     : ( 0x6A == ((const U8*)s)[0] ) ?                                       \
  258     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  259     : ( 0x73 == ((const U8*)s)[0] ) ?                                       \
  260     ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 )             \
  261     : ( 0x74 == ((const U8*)s)[0] ) ?                                       \
  262     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  263     : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ?          \
  264     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  265     : ( 0xC5 == ((const U8*)s)[0] ) ?                                       \
  266     ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  267     : ( 0xCA == ((const U8*)s)[0] ) ?                                       \
  268     ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  269     : ( 0xCE == ((const U8*)s)[0] ) ?                                       \
  270     ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ?                        \
  271         ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  272     : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ?      \
  273         ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
  274         ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
  275         : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  276     : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  277     : ( 0xCF == ((const U8*)s)[0] ) ?                                       \
  278     ( ( 0x81 == ((const U8*)s)[1] ) ?                                   \
  279         ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  280     : ( 0x85 == ((const U8*)s)[1] ) ?                                   \
  281         ( ( 0xCC == ((const U8*)s)[2] ) ?                               \
  282         ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
  283         : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  284     : ( 0x89 == ((const U8*)s)[1] ) ?                                   \
  285         ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
  286         ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
  287         : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  288     : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  289     : ( 0xD5 == ((const U8*)s)[0] ) ?                                       \
  290     ( ( 0xA5 == ((const U8*)s)[1] ) ?                                   \
  291         ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  292     : ( 0xB4 == ((const U8*)s)[1] ) ?                                   \
  293         ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
  294     : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  295     : ( 0xE1 == ((const U8*)s)[0] ) ?                                       \
  296     ( ( 0xBC == ((const U8*)s)[1] ) ?                                   \
  297         ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
  298     : ( ( ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
  299     : 0 )
  300 
  301 
  302 /*** GENERATED CODE ***/
  303 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
  304 ( ((e)-(s) > 3) ?                                                           \
  305     ( ( 0x61 == ((const U8*)s)[0] ) ?                                       \
  306     ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  307     : ( 0x66 == ((const U8*)s)[0] ) ?                                       \
  308     ( ( 0x66 == ((const U8*)s)[1] ) ?                                   \
  309         ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
  310     : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
  311     : ( 0x68 == ((const U8*)s)[0] ) ?                                       \
  312     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  313     : ( 0x69 == ((const U8*)s)[0] ) ?                                       \
  314     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  315     : ( 0x6A == ((const U8*)s)[0] ) ?                                       \
  316     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  317     : ( 0x73 == ((const U8*)s)[0] ) ?                                       \
  318     ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 )             \
  319     : ( 0x74 == ((const U8*)s)[0] ) ?                                       \
  320     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  321     : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ?          \
  322     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  323     : ( 0xC5 == ((const U8*)s)[0] ) ?                                       \
  324     ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  325     : ( 0xCA == ((const U8*)s)[0] ) ?                                       \
  326     ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  327     : ( 0xCE == ((const U8*)s)[0] ) ?                                       \
  328     ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ?                        \
  329         ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  330     : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ?      \
  331         ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
  332         ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
  333         : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  334     : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  335     : ( 0xCF == ((const U8*)s)[0] ) ?                                       \
  336     ( ( 0x81 == ((const U8*)s)[1] ) ?                                   \
  337         ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  338     : ( 0x85 == ((const U8*)s)[1] ) ?                                   \
  339         ( ( 0xCC == ((const U8*)s)[2] ) ?                               \
  340         ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
  341         : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  342     : ( 0x89 == ((const U8*)s)[1] ) ?                                   \
  343         ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
  344         ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
  345         : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  346     : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  347     : ( 0xD5 == ((const U8*)s)[0] ) ?                                       \
  348     ( ( 0xA5 == ((const U8*)s)[1] ) ?                                   \
  349         ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  350     : ( 0xB4 == ((const U8*)s)[1] ) ?                                   \
  351         ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
  352     : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  353     : 0 )                                                                   \
  354 : ((e)-(s) > 2) ?                                                           \
  355     ( ( 0x61 == ((const U8*)s)[0] ) ?                                       \
  356     ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  357     : ( 0x66 == ((const U8*)s)[0] ) ?                                       \
  358     ( ( 0x66 == ((const U8*)s)[1] ) ?                                   \
  359         ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
  360     : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
  361     : ( 0x68 == ((const U8*)s)[0] ) ?                                       \
  362     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  363     : ( 0x69 == ((const U8*)s)[0] ) ?                                       \
  364     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  365     : ( 0x6A == ((const U8*)s)[0] ) ?                                       \
  366     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  367     : ( 0x73 == ((const U8*)s)[0] ) ?                                       \
  368     ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 )             \
  369     : ( 0x74 == ((const U8*)s)[0] ) ?                                       \
  370     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  371     : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ?          \
  372     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  373     : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  374 : ((e)-(s) > 1) ?                                                           \
  375     ( ( 0x66 == ((const U8*)s)[0] ) ?                                       \
  376     ( ( 0x66 == ((const U8*)s)[1] || 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
  377     : ( ( 0x73 == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ) ? 2 : 0 )\
  378 : 0 )
  379 
  380 
  381 /*** GENERATED CODE ***/
  382 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
  383 ( ((e)-(s) > 5) ?                                                           \
  384     ( ( 0x61 == ((const U8*)s)[0] ) ?                                       \
  385     ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  386     : ( 0x66 == ((const U8*)s)[0] ) ?                                       \
  387     ( ( 0x66 == ((const U8*)s)[1] ) ?                                   \
  388         ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
  389     : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
  390     : ( 0x68 == ((const U8*)s)[0] ) ?                                       \
  391     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  392     : ( 0x69 == ((const U8*)s)[0] ) ?                                       \
  393     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  394     : ( 0x6A == ((const U8*)s)[0] ) ?                                       \
  395     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  396     : ( 0x73 == ((const U8*)s)[0] ) ?                                       \
  397     ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 )             \
  398     : ( 0x74 == ((const U8*)s)[0] ) ?                                       \
  399     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  400     : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ?          \
  401     ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  402     : ( 0xC5 == ((const U8*)s)[0] ) ?                                       \
  403     ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  404     : ( 0xCA == ((const U8*)s)[0] ) ?                                       \
  405     ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  406     : ( 0xCE == ((const U8*)s)[0] ) ?                                       \
  407     ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ?                        \
  408         ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  409     : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ?      \
  410         ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
  411         ( ( 0x82 == ((const U8*)s)[3] ) ?                           \
  412             ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
  413         : 0 )                                                       \
  414         : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  415     : ( 0xB9 == ((const U8*)s)[1] ) ?                                   \
  416         ( ( 0xCC == ((const U8*)s)[2] ) ?                               \
  417         ( ( 0x88 == ((const U8*)s)[3] ) ?                           \
  418             ( ( 0xCC == ((const U8*)s)[4] ) ?                       \
  419             ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81 ) ) ? 6 : 0 )\
  420             : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
  421         : 0 )                                                       \
  422         : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  423     : 0 )                                                               \
  424     : ( 0xCF == ((const U8*)s)[0] ) ?                                       \
  425     ( ( 0x81 == ((const U8*)s)[1] ) ?                                   \
  426         ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  427     : ( 0x85 == ((const U8*)s)[1] ) ?                                   \
  428         ( ( 0xCC == ((const U8*)s)[2] ) ?                               \
  429         ( ( 0x88 == ((const U8*)s)[3] ) ?                           \
  430             ( ( 0xCC == ((const U8*)s)[4] ) ?                       \
  431             ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81 ) ) ? 6 : 0 )\
  432             : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
  433         : ( 0x93 == ((const U8*)s)[3] ) ?                           \
  434             ( ( 0xCC == ((const U8*)s)[4] ) ?                       \
  435             ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81 ) ) ? 6 : 4 )\
  436             : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
  437         : 0 )                                                       \
  438         : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  439     : ( 0x89 == ((const U8*)s)[1] ) ?                                   \
  440         ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
  441         ( ( 0x82 == ((const U8*)s)[3] ) ?                           \
  442             ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
  443         : 0 )                                                       \
  444         : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  445     : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  446     : ( 0xD5 == ((const U8*)s)[0] ) ?                                       \
  447     ( ( 0xA5 == ((const U8*)s)[1] ) ?                                   \
  448         ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  449     : ( 0xB4 == ((const U8*)s)[1] ) ?                                   \
  450         ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
  451     : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  452     : ( 0xE1 == ((const U8*)s)[0] ) ?                                       \
  453     ( ( 0xBC == ((const U8*)s)[1] ) ?                                   \
  454         ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
  455     : ( ( ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
  456     : 0 )                                                                   \
  457 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
  458 
  459 /*
  460     MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
  461 
  462     &regcharclass_multi_char_folds::multi_char_folds(0)
  463 */
  464 /*** GENERATED CODE ***/
  465 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
  466 ( ((e)-(s) > 2) ?                                                           \
  467     ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ?                            \
  468     ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) ?                        \
  469         ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[2] & 0xDF ) == 0x4C ) ) ? 3 : 2 )\
  470     : ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
  471     : ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x53 ) && ( inRANGE(((const U8*)s)[1], 0x53, 0x54 ) || inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ) ? 2 : 0 )\
  472 : ((e)-(s) > 1) ?                                                           \
  473     ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ?                            \
  474     ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
  475     : ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x53 ) && ( inRANGE(((const U8*)s)[1], 0x53, 0x54 ) || inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ) ? 2 : 0 )\
  476 : 0 )
  477 
  478 /*
  479     FOLDS_TO_MULTI: characters that fold to multi-char strings
  480 
  481     \p{_Perl_Folds_To_Multi_Char}
  482 */
  483 /*** GENERATED CODE ***/
  484 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
  485 ( ( 0xC3 == ((const U8*)s)[0] ) ?                                           \
  486     ( ( 0x9F == ((const U8*)s)[1] ) ? 2 : 0 )                               \
  487 : ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ?              \
  488     ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
  489 : ( 0xC5 == ((const U8*)s)[0] ) ?                                           \
  490     ( ( 0x89 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
  491 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
  492     ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x90 ) ? 2 : 0 )                    \
  493 : ( 0xD6 == ((const U8*)s)[0] ) ?                                           \
  494     ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
  495 : ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
  496     ( ( 0xBA == ((const U8*)s)[1] ) ?                                       \
  497     ( ( inRANGE(((const U8*)s)[2], 0x96, 0x9A ) || 0x9E == ((const U8*)s)[2] ) ? 3 : 0 )\
  498     : ( 0xBD == ((const U8*)s)[1] ) ?                                       \
  499     ( ( ( ((const U8*)s)[2] & 0xF9 ) == 0x90 ) ? 3 : 0 )                \
  500     : ( 0xBE == ((const U8*)s)[1] ) ?                                       \
  501     ( ( inRANGE(((const U8*)s)[2], 0x80, 0xAF ) || inRANGE(((const U8*)s)[2], 0xB2, 0xB4 ) || inRANGE(((const U8*)s)[2], 0xB6, 0xB7 ) || 0xBC == ((const U8*)s)[2] ) ? 3 : 0 )\
  502     : ( ( 0xBF == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xCA ) == 0x82 ) || ( ( ((const U8*)s)[2] & 0xF7 ) == 0x84 ) || ((const U8*)s)[2] == 0xA4 || ( ( ((const U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
  503 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0x86 ) || inRANGE(((const U8*)s)[2], 0x93, 0x97 ) ) ) ? 3 : 0 )
  504 
  505 /*
  506     PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
  507 
  508     \p{_Perl_Problematic_Locale_Folds}
  509 */
  510 /*** GENERATED CODE ***/
  511 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
  512 ( ( ((const U8*)s)[0] <= 0x7F ) ? 1                                         \
  513 : ( inRANGE(((const U8*)s)[0], 0xC2, 0xC3 ) ) ?                             \
  514     2                                                                       \
  515 : ( 0xC4 == ((const U8*)s)[0] ) ?                                           \
  516     ( ( inRANGE(((const U8*)s)[1], 0xB0, 0xB1 ) ) ? 2 : 0 )                 \
  517 : ( 0xC5 == ((const U8*)s)[0] ) ?                                           \
  518     ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
  519 : ( 0xC7 == ((const U8*)s)[0] ) ?                                           \
  520     ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
  521 : ( 0xCC == ((const U8*)s)[0] ) ?                                           \
  522     ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
  523 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
  524     ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 )                    \
  525 : ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
  526     ( ( ( 0xBA == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x96, 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  527 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
  528     ( ( ( 0x84 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xAA, 0xAB ) ) ) ? 3 : 0 )\
  529 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0x86 ) ) ) ? 3 : 0 )
  530 
  531 /*** GENERATED CODE ***/
  532 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
  533 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
  534 ( 0x130 == cp || ( 0x130 < cp &&                                            \
  535 ( 0x131 == cp || ( 0x131 < cp &&                                            \
  536 ( 0x149 == cp || ( 0x149 < cp &&                                            \
  537 ( 0x178 == cp || ( 0x178 < cp &&                                            \
  538 ( 0x17F == cp || ( 0x17F < cp &&                                            \
  539 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
  540 ( 0x307 == cp || ( 0x307 < cp &&                                            \
  541 ( 0x39C == cp || ( 0x39C < cp &&                                            \
  542 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
  543 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp &&                           \
  544 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
  545 ( 0x212A == cp || ( 0x212A < cp &&                                          \
  546 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
  547 
  548 /*
  549     PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
  550 
  551     \p{_Perl_Problematic_Locale_Foldeds_Start}
  552 */
  553 /*** GENERATED CODE ***/
  554 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
  555 ( ( ((const U8*)s)[0] <= 0x7F ) ? 1                                         \
  556 : ( inRANGE(((const U8*)s)[0], 0xC2, 0xC3 ) ) ?                             \
  557     2                                                                       \
  558 : ( 0xC4 == ((const U8*)s)[0] ) ?                                           \
  559     ( ( inRANGE(((const U8*)s)[1], 0xB0, 0xB1 ) ) ? 2 : 0 )                 \
  560 : ( 0xC5 == ((const U8*)s)[0] ) ?                                           \
  561     ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
  562 : ( 0xC7 == ((const U8*)s)[0] ) ?                                           \
  563     ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
  564 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
  565     ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 )                               \
  566 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
  567     ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 )                    \
  568 : ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
  569     ( ( ( 0xBA == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x96, 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  570 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
  571     ( ( ( 0x84 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xAA, 0xAB ) ) ) ? 3 : 0 )\
  572 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0x86 ) ) ) ? 3 : 0 )
  573 
  574 /*** GENERATED CODE ***/
  575 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
  576 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
  577 ( 0x130 == cp || ( 0x130 < cp &&                                            \
  578 ( 0x131 == cp || ( 0x131 < cp &&                                            \
  579 ( 0x149 == cp || ( 0x149 < cp &&                                            \
  580 ( 0x178 == cp || ( 0x178 < cp &&                                            \
  581 ( 0x17F == cp || ( 0x17F < cp &&                                            \
  582 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
  583 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
  584 ( 0x39C == cp || ( 0x39C < cp &&                                            \
  585 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
  586 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp &&                           \
  587 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
  588 ( 0x212A == cp || ( 0x212A < cp &&                                          \
  589 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
  590 
  591 /*
  592     PATWS: pattern white space
  593 
  594     \p{_Perl_PatWS}
  595 */
  596 /*** GENERATED CODE ***/
  597 #define is_PATWS_safe(s,e,is_utf8)                                          \
  598 ( ( LIKELY((e) > (s)) ) ?                                                   \
  599     ( ( inRANGE(((const U8*)s)[0], 0x09, 0x0D ) || 0x20 == ((const U8*)s)[0] ) ? 1\
  600     : (! is_utf8 ) ?                                                        \
  601         ( 0x85 == ((const U8*)s)[0] )                                   \
  602     : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ?                          \
  603         ( ( 0xC2 == ((const U8*)s)[0] ) ?                               \
  604         ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 )                   \
  605         : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x8E, 0x8F ) || inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )\
  606     : 0 )                                                               \
  607 : 0 )
  608 
  609 /*** GENERATED CODE ***/
  610 #define is_PATWS_cp(cp)                                                     \
  611 ( inRANGE(cp, 0x09, 0x0D) || ( 0x0D < cp &&                                 \
  612 ( 0x20 == cp || ( 0x20 < cp &&                                              \
  613 ( 0x85 == cp || ( 0x85 < cp &&                                              \
  614 ( 0x200E == cp || ( 0x200E < cp &&                                          \
  615 ( 0x200F == cp || ( 0x200F < cp &&                                          \
  616 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) )
  617 
  618 /*
  619     HANGUL_ED: Hangul syllables whose first character is \xED
  620 
  621     0xD000 - 0xD7FF
  622 */
  623 /*** GENERATED CODE ***/
  624 #define is_HANGUL_ED_utf8_safe(s,e)                                         \
  625 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0x80, 0x9F ) ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0xBF ) ) ) ? 3 : 0 )
  626 
  627 #endif  /* ASCII/Latin1 */
  628 
  629 #if 'A' == 193 /* EBCDIC 1047 */ \
  630      && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
  631      && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
  632      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
  633 /*
  634     LNBREAK: Line Break: \R
  635 
  636     "\x0D\x0A"      # CRLF - Network (Windows) line ending
  637     \p{VertSpace}
  638 */
  639 /*** GENERATED CODE ***/
  640 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
  641 ( ((e)-(s) > 2) ?                                                           \
  642     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
  643     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
  644     ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
  645     : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
  646 : ((e)-(s) > 1) ?                                                           \
  647     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
  648     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
  649     ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
  650     : 0 )                                                                   \
  651 : ((e)-(s) > 0) ?                                                           \
  652     ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
  653 : 0 )
  654 
  655 /*** GENERATED CODE ***/
  656 #define is_LNBREAK_utf8_safe(s,e)                                           \
  657 ( ((e)-(s) > 2) ?                                                           \
  658     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
  659     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
  660     ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
  661     : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
  662 : ((e)-(s) > 1) ?                                                           \
  663     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
  664     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
  665     ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
  666     : 0 )                                                                   \
  667 : ((e)-(s) > 0) ?                                                           \
  668     ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
  669 : 0 )
  670 
  671 /*** GENERATED CODE ***/
  672 #define is_LNBREAK_latin1_safe(s,e)                                         \
  673 ( ((e)-(s) > 1) ?                                                           \
  674     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
  675     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
  676     ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
  677     : 0 )                                                                   \
  678 : ((e)-(s) > 0) ?                                                           \
  679     ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
  680 : 0 )
  681 
  682 /*
  683     HORIZWS: Horizontal Whitespace: \h \H
  684 
  685     \p{HorizSpace}
  686 */
  687 /*** GENERATED CODE ***/
  688 #define is_HORIZWS_high(s)                                                  \
  689 ( ( 0xBC == ((const U8*)s)[0] ) ?                                           \
  690     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  691 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
  692     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
  693     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
  694     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
  695     ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
  696     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  697 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
  698 
  699 /*** GENERATED CODE ***/
  700 #define is_HORIZWS_cp_high(cp)                                              \
  701 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
  702 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp &&                           \
  703 ( 0x202F == cp || ( 0x202F < cp &&                                          \
  704 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
  705 
  706 /*
  707     VERTWS: Vertical Whitespace: \v \V
  708 
  709     \p{VertSpace}
  710 */
  711 /*** GENERATED CODE ***/
  712 #define is_VERTWS_high(s)                                                   \
  713 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )
  714 
  715 /*** GENERATED CODE ***/
  716 #define is_VERTWS_cp_high(cp)                                               \
  717 ( 0x2028 == cp || 0x2029 == cp )
  718 
  719 /*
  720     XDIGIT: Hexadecimal digits
  721 
  722     \p{XDigit}
  723 */
  724 /*** GENERATED CODE ***/
  725 #define is_XDIGIT_high(s)                                                   \
  726 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x73 == ((const U8*)s)[1] ) ) ? ( ( 0x67 == ((const U8*)s)[2] ) ?\
  727         ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x68 ) ) ? 4 : 0 )\
  728     : ( ( inRANGE(((const U8*)s)[2], 0x68, 0x69 ) ) && ( inRANGE(((const U8*)s)[3], 0x42, 0x47 ) ) ) ? 4 : 0 ) : 0 )
  729 
  730 /*** GENERATED CODE ***/
  731 #define is_XDIGIT_cp_high(cp)                                               \
  732 ( inRANGE(cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp &&                           \
  733 ( inRANGE(cp, 0xFF21, 0xFF26) || inRANGE(cp, 0xFF41, 0xFF46) ) ) )
  734 
  735 /*
  736     XPERLSPACE: \p{XPerlSpace}
  737 
  738     \p{XPerlSpace}
  739 */
  740 /*** GENERATED CODE ***/
  741 #define is_XPERLSPACE_high(s)                                               \
  742 ( ( 0xBC == ((const U8*)s)[0] ) ?                                           \
  743     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  744 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
  745     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
  746     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
  747     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
  748     ( ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
  749     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  750 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
  751 
  752 /*** GENERATED CODE ***/
  753 #define is_XPERLSPACE_cp_high(cp)                                           \
  754 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
  755 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp &&                           \
  756 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
  757 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
  758 ( 0x202F == cp || ( 0x202F < cp &&                                          \
  759 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
  760 
  761 /*
  762     NONCHAR: Non character code points
  763 
  764     \p{_Perl_Nchar}
  765 */
  766 /*** GENERATED CODE ***/
  767 #define is_NONCHAR_utf8_safe(s,e)                                           \
  768 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
  769         ( ( 0x73 == ((const U8*)s)[1] ) ?                               \
  770         ( ( 0x55 == ((const U8*)s)[2] ) ?                           \
  771             ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x73 ) ) ? 4 : 0 )\
  772         : ( 0x56 == ((const U8*)s)[2] ) ?                           \
  773             ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
  774         : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x72, 0x73 ) ) ) ? 4 : 0 )\
  775         : 0 )                                                           \
  776     : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
  777         ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x72, 0x73 ) ) ) ? 4 : 0 )\
  778     : ( 0xED == ((const U8*)s)[0] ) ?                                   \
  779         ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x62 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x71 ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x72, 0x73 ) ) ) ? 5 : 0 )\
  780     : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x72, 0x73 ) ) ) ? 5 : 0 ) : 0 )
  781 
  782 /*
  783     SURROGATE: Surrogate code points
  784 
  785     \p{_Perl_Surrogate}
  786 */
  787 /*** GENERATED CODE ***/
  788 #define is_SURROGATE_utf8_safe(s,e)                                         \
  789 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0x65, 0x66 ) ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x73 ) ) ) ? 4 : 0 )
  790 
  791 /*
  792     QUOTEMETA: Meta-characters that \Q should quote
  793 
  794     \p{_Perl_Quotemeta}
  795 */
  796 /*** GENERATED CODE ***/
  797 #define is_QUOTEMETA_high(s)                                                \
  798 ( ( 0xB1 == ((const U8*)s)[0] ) ?                                           \
  799     ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
  800 : ( 0xB8 == ((const U8*)s)[0] ) ?                                           \
  801     ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  802 : ( 0xBB == ((const U8*)s)[0] ) ?                                           \
  803     ( ( 0x51 == ((const U8*)s)[1] ) ?                                       \
  804     ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
  805     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  806 : ( 0xBC == ((const U8*)s)[0] ) ?                                           \
  807     ( ( 0x63 == ((const U8*)s)[1] ) ?                                       \
  808     ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
  809     : ( ( 0x71 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x63, 0x64 ) ) ) ? 3 : 0 )\
  810 : ( 0xBE == ((const U8*)s)[0] ) ?                                           \
  811     ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x52, 0x55 ) ) ) ? 3 : 0 )\
  812 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
  813     ( ( 0x41 == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x54, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) ?\
  814     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
  815     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
  816     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
  817     : ( 0x43 == ((const U8*)s)[1] ) ?                                       \
  818     ( ( inRANGE(((const U8*)s)[2], 0x42, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x62 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x64, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
  819     : ( 0x44 == ((const U8*)s)[1] ) ?                                       \
  820     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) ) ? 3 : 0 )\
  821     : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x57, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
  822 : ( 0xCB == ((const U8*)s)[0] ) ?                                           \
  823     ( ( inRANGE(((const U8*)s)[1], 0x41, 0x43 ) || inRANGE(((const U8*)s)[1], 0x49, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x69 ) || inRANGE(((const U8*)s)[1], 0x71, 0x73 ) ) ?\
  824     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
  825     : ( 0x6A == ((const U8*)s)[1] ) ?                                       \
  826     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x64 ) ) ? 3 : 0 )\
  827     : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x63, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
  828 : ( 0xCC == ((const U8*)s)[0] ) ?                                           \
  829     ( ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
  830 : ( 0xCD == ((const U8*)s)[0] ) ?                                           \
  831     ( ( ( inRANGE(((const U8*)s)[1], 0x57, 0x59 ) || 0x62 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
  832 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
  833     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
  834     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) || inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
  835     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
  836     ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
  837     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  838 : ( 0xDD == ((const U8*)s)[0] ) ?                                           \
  839     ( ( 0x73 == ((const U8*)s)[1] ) ?                                       \
  840     ( ( 0x4A == ((const U8*)s)[2] ) ?                                   \
  841         ( ( inRANGE(((const U8*)s)[3], 0x72, 0x73 ) ) ? 4 : 0 )         \
  842     : ( 0x57 == ((const U8*)s)[2] ) ?                                   \
  843         ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
  844     : ( 0x59 == ((const U8*)s)[2] ) ?                                   \
  845         ( ( inRANGE(((const U8*)s)[3], 0x46, 0x47 ) ) ? 4 : 0 )         \
  846     : ( 0x66 == ((const U8*)s)[2] ) ?                                   \
  847         ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
  848     : ( 0x71 == ((const U8*)s)[2] ) ?                                   \
  849         ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
  850     : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x67 ) ) ) ? 4 : 0 )\
  851     : 0 )                                                                   \
  852 : ( 0xDF == ((const U8*)s)[0] ) ?                                           \
  853     ( ( 0x56 == ((const U8*)s)[1] ) ?                                       \
  854     ( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x44 ) ) ) ? 4 : 0 )\
  855     : ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x62, 0x69 ) ) ) ? 4 : 0 )\
  856 : ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x73 ) ) ) && ( inRANGE(((const U8*)s)[4], 0x41, 0x4A ) || inRANGE(((const U8*)s)[4], 0x51, 0x59 ) || inRANGE(((const U8*)s)[4], 0x62, 0x6A ) || inRANGE(((const U8*)s)[4], 0x70, 0x73 ) ) ) ? 5 : 0 )
  857 
  858 /*
  859     MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
  860 
  861     &regcharclass_multi_char_folds::multi_char_folds(1)
  862 */
  863 /*** GENERATED CODE ***/
  864 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
  865 ( ( 0x86 == ((const U8*)s)[1] ) ?                                           \
  866         ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
  867     : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
  868 
  869 
  870 /*** GENERATED CODE ***/
  871 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
  872 ( ( 0x88 == ((const U8*)s)[0] ) ?                                           \
  873     ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  874     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
  875     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  876     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
  877     ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  878     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
  879     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  880     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
  881     ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
  882     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
  883     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  884     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
  885     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  886     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
  887     ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  888     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
  889     ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
  890         ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  891     : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
  892         ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
  893         ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
  894             ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
  895         : 0 )                                                       \
  896         : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  897     : ( 0x68 == ((const U8*)s)[1] ) ?                                   \
  898         ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
  899         ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
  900             ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
  901             ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
  902             : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
  903         : 0 )                                                       \
  904         : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  905     : 0 )                                                               \
  906     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
  907     ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
  908         ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  909     : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
  910         ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
  911         ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
  912             ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
  913             ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
  914             : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
  915         : ( 0x62 == ((const U8*)s)[3] ) ?                           \
  916             ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
  917             ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 4 )\
  918             : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
  919         : 0 )                                                       \
  920         : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  921     : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
  922         ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
  923         ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
  924             ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
  925         : 0 )                                                       \
  926         : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  927     : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  928     : ( 0xB8 == ((const U8*)s)[0] ) ?                                       \
  929     ( ( 0x52 == ((const U8*)s)[1] ) ?                                   \
  930         ( ( 0x46 == ((const U8*)s)[2] ) ?                               \
  931         ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
  932         : ( 0x63 == ((const U8*)s)[2] ) ?                               \
  933         ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x46 == ((const U8*)s)[5] || 0x52 == ((const U8*)s)[5] || 0x54 == ((const U8*)s)[5] || 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
  934         : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
  935     : 0 )                                                               \
  936     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
  937     ( ( inRANGE(((const U8*)s)[1], 0x67, 0x68 ) ) ?                     \
  938         ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
  939     : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
  940     : 0 )
  941 
  942 
  943 /*** GENERATED CODE ***/
  944 #define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e)                             \
  945 ( ( 0x81 == ((const U8*)s)[0] ) ?                                           \
  946     ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  947     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
  948     ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
  949         ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
  950     : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
  951     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
  952     ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  953     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
  954     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  955     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
  956     ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  957     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
  958     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  959     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
  960     ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
  961     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
  962     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  963     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
  964     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  965     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
  966     ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  967     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
  968     ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
  969         ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  970     : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
  971         ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
  972         ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
  973         : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  974     : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  975     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
  976     ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
  977         ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  978     : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
  979         ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
  980         ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
  981         : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  982     : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
  983         ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
  984         ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
  985         : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  986     : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
  987     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
  988     ( ( inRANGE(((const U8*)s)[1], 0x67, 0x68 ) ) ?                     \
  989         ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
  990     : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
  991     : 0 )
  992 
  993 
  994 /*** GENERATED CODE ***/
  995 #define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e)                             \
  996 ( ((e)-(s) > 3) ?                                                           \
  997     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
  998     ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
  999     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
 1000     ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
 1001         ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
 1002     : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
 1003     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
 1004     ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1005     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
 1006     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1007     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
 1008     ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1009     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
 1010     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1011     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
 1012     ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
 1013     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
 1014     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1015     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
 1016     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1017     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
 1018     ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1019     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
 1020     ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
 1021         ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1022     : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
 1023         ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
 1024         ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
 1025         : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1026     : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1027     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
 1028     ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
 1029         ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1030     : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
 1031         ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
 1032         ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
 1033         : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1034     : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
 1035         ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
 1036         ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
 1037         : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1038     : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1039     : 0 )                                                                   \
 1040 : ((e)-(s) > 2) ?                                                           \
 1041     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
 1042     ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1043     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
 1044     ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
 1045         ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
 1046     : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
 1047     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
 1048     ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1049     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
 1050     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1051     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
 1052     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1053     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
 1054     ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
 1055     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
 1056     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1057     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
 1058     ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1059     : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1060 : ((e)-(s) > 1) ?                                                           \
 1061     ( ( 0x86 == ((const U8*)s)[0] ) ?                                       \
 1062     ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
 1063     : ( ( 0xA2 == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ) ? 2 : 0 )\
 1064 : 0 )
 1065 
 1066 
 1067 /*** GENERATED CODE ***/
 1068 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
 1069 ( ((e)-(s) > 5) ?                                                           \
 1070     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
 1071     ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1072     : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
 1073 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
 1074 
 1075 /*
 1076     MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
 1077 
 1078     &regcharclass_multi_char_folds::multi_char_folds(0)
 1079 */
 1080 /*** GENERATED CODE ***/
 1081 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
 1082 ( ((e)-(s) > 2) ?                                                           \
 1083     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
 1084     ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ?                        \
 1085         ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
 1086     : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
 1087     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
 1088 : ((e)-(s) > 1) ?                                                           \
 1089     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
 1090     ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
 1091     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
 1092 : 0 )
 1093 
 1094 /*
 1095     FOLDS_TO_MULTI: characters that fold to multi-char strings
 1096 
 1097     \p{_Perl_Folds_To_Multi_Char}
 1098 */
 1099 /*** GENERATED CODE ***/
 1100 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
 1101 ( ( 0x8A == ((const U8*)s)[0] ) ?                                           \
 1102     ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1103 : ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB3, 0xB4 ) ) ?\
 1104     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1105 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
 1106     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1107 : ( 0xB8 == ((const U8*)s)[0] ) ?                                           \
 1108     ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1109 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
 1110     ( ( 0x63 == ((const U8*)s)[1] ) ?                                       \
 1111     ( ( inRANGE(((const U8*)s)[2], 0x65, 0x69 ) || 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )\
 1112     : ( 0x69 == ((const U8*)s)[1] ) ?                                       \
 1113     ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x65 == ((const U8*)s)[2] ) ? 3 : 0 )\
 1114     : ( 0x70 == ((const U8*)s)[1] ) ?                                       \
 1115     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
 1116     : ( 0x71 == ((const U8*)s)[1] ) ?                                       \
 1117     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) || 0x59 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x63 ) || inRANGE(((const U8*)s)[2], 0x65, 0x66 ) || 0x70 == ((const U8*)s)[2] ) ? 3 : 0 )\
 1118     : ( 0x72 == ((const U8*)s)[1] ) ?                                       \
 1119     ( ( inRANGE(((const U8*)s)[2], 0x43, 0x45 ) || inRANGE(((const U8*)s)[2], 0x47, 0x48 ) || 0x53 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x65, 0x66 ) ) ? 3 : 0 )\
 1120     : ( ( 0x73 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x43, 0x45 ) || inRANGE(((const U8*)s)[2], 0x47, 0x48 ) || 0x59 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x63 ) || inRANGE(((const U8*)s)[2], 0x65, 0x66 ) || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1121 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) || inRANGE(((const U8*)s)[3], 0x62, 0x66 ) ) ) ? 4 : 0 )
 1122 
 1123 /*
 1124     PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
 1125 
 1126     \p{_Perl_Problematic_Locale_Folds}
 1127 */
 1128 /*** GENERATED CODE ***/
 1129 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
 1130 ( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xAD == ((const U8*)s)[0] || 0xBD == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
 1131 : ( 0x80 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x8A, 0x8B ) ) ?\
 1132     ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) ? 2 : 0 )\
 1133 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
 1134     ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 )                 \
 1135 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
 1136     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1137 : ( 0x8F == ((const U8*)s)[0] ) ?                                           \
 1138     ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )  \
 1139 : ( 0x9C == ((const U8*)s)[0] ) ?                                           \
 1140     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1141 : ( 0xAF == ((const U8*)s)[0] ) ?                                           \
 1142     ( ( 0x48 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1143 : ( inRANGE(((const U8*)s)[0], 0xB3, 0xB4 ) ) ?                             \
 1144     ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1145 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
 1146     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x65, 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1147 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
 1148     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
 1149 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
 1150 
 1151 /*** GENERATED CODE ***/
 1152 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
 1153 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
 1154 ( 0x130 == cp || ( 0x130 < cp &&                                            \
 1155 ( 0x131 == cp || ( 0x131 < cp &&                                            \
 1156 ( 0x149 == cp || ( 0x149 < cp &&                                            \
 1157 ( 0x178 == cp || ( 0x178 < cp &&                                            \
 1158 ( 0x17F == cp || ( 0x17F < cp &&                                            \
 1159 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
 1160 ( 0x307 == cp || ( 0x307 < cp &&                                            \
 1161 ( 0x39C == cp || ( 0x39C < cp &&                                            \
 1162 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
 1163 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp &&                           \
 1164 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
 1165 ( 0x212A == cp || ( 0x212A < cp &&                                          \
 1166 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
 1167 
 1168 /*
 1169     PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
 1170 
 1171     \p{_Perl_Problematic_Locale_Foldeds_Start}
 1172 */
 1173 /*** GENERATED CODE ***/
 1174 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
 1175 ( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xAD == ((const U8*)s)[0] || 0xBD == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
 1176 : ( 0x80 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x8A, 0x8B ) ) ?\
 1177     ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) ? 2 : 0 )\
 1178 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
 1179     ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 )                 \
 1180 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
 1181     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1182 : ( 0x8F == ((const U8*)s)[0] ) ?                                           \
 1183     ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )  \
 1184 : ( 0x9C == ((const U8*)s)[0] ) ?                                           \
 1185     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1186 : ( 0xAB == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB3, 0xB4 ) ) ?\
 1187     ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1188 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
 1189     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x65, 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1190 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
 1191     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
 1192 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
 1193 
 1194 /*** GENERATED CODE ***/
 1195 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
 1196 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
 1197 ( 0x130 == cp || ( 0x130 < cp &&                                            \
 1198 ( 0x131 == cp || ( 0x131 < cp &&                                            \
 1199 ( 0x149 == cp || ( 0x149 < cp &&                                            \
 1200 ( 0x178 == cp || ( 0x178 < cp &&                                            \
 1201 ( 0x17F == cp || ( 0x17F < cp &&                                            \
 1202 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
 1203 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
 1204 ( 0x39C == cp || ( 0x39C < cp &&                                            \
 1205 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
 1206 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp &&                           \
 1207 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
 1208 ( 0x212A == cp || ( 0x212A < cp &&                                          \
 1209 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
 1210 
 1211 /*
 1212     PATWS: pattern white space
 1213 
 1214     \p{_Perl_PatWS}
 1215 */
 1216 /*** GENERATED CODE ***/
 1217 #define is_PATWS_safe(s,e,is_utf8)                                          \
 1218 ( ( LIKELY((e) > (s)) ) ?                                                   \
 1219     ( ( 0x05 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] || 0x40 == ((const U8*)s)[0] ) ? 1\
 1220     : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
 1221             ( ( inRANGE(((const U8*)s)[2], 0x55, 0x56 ) ) ? 3 : 0 ) \
 1222         : ( ( 0x42 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 ) : 0 )\
 1223 : 0 )
 1224 
 1225 /*** GENERATED CODE ***/
 1226 #define is_PATWS_cp(cp)                                                     \
 1227 ( 0x05 == cp || ( 0x05 < cp &&                                              \
 1228 ( inRANGE(cp, 0x0B, 0x0D) || ( 0x0D < cp &&                                 \
 1229 ( 0x15 == cp || ( 0x15 < cp &&                                              \
 1230 ( 0x25 == cp || ( 0x25 < cp &&                                              \
 1231 ( 0x40 == cp || ( 0x40 < cp &&                                              \
 1232 ( 0x200E == cp || ( 0x200E < cp &&                                          \
 1233 ( 0x200F == cp || ( 0x200F < cp &&                                          \
 1234 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
 1235 
 1236 #endif  /* EBCDIC 1047 */
 1237 
 1238 #if 'A' == 193 /* EBCDIC 037 */ \
 1239      && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
 1240      && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
 1241      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
 1242 /*
 1243     LNBREAK: Line Break: \R
 1244 
 1245     "\x0D\x0A"      # CRLF - Network (Windows) line ending
 1246     \p{VertSpace}
 1247 */
 1248 /*** GENERATED CODE ***/
 1249 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
 1250 ( ((e)-(s) > 2) ?                                                           \
 1251     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
 1252     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
 1253     ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
 1254     : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
 1255 : ((e)-(s) > 1) ?                                                           \
 1256     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
 1257     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
 1258     ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
 1259     : 0 )                                                                   \
 1260 : ((e)-(s) > 0) ?                                                           \
 1261     ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
 1262 : 0 )
 1263 
 1264 /*** GENERATED CODE ***/
 1265 #define is_LNBREAK_utf8_safe(s,e)                                           \
 1266 ( ((e)-(s) > 2) ?                                                           \
 1267     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
 1268     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
 1269     ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
 1270     : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
 1271 : ((e)-(s) > 1) ?                                                           \
 1272     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
 1273     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
 1274     ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
 1275     : 0 )                                                                   \
 1276 : ((e)-(s) > 0) ?                                                           \
 1277     ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
 1278 : 0 )
 1279 
 1280 /*** GENERATED CODE ***/
 1281 #define is_LNBREAK_latin1_safe(s,e)                                         \
 1282 ( ((e)-(s) > 1) ?                                                           \
 1283     ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
 1284     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
 1285     ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
 1286     : 0 )                                                                   \
 1287 : ((e)-(s) > 0) ?                                                           \
 1288     ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
 1289 : 0 )
 1290 
 1291 /*
 1292     HORIZWS: Horizontal Whitespace: \h \H
 1293 
 1294     \p{HorizSpace}
 1295 */
 1296 /*** GENERATED CODE ***/
 1297 #define is_HORIZWS_high(s)                                                  \
 1298 ( ( 0xBD == ((const U8*)s)[0] ) ?                                           \
 1299     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1300 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
 1301     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
 1302     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
 1303     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
 1304     ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
 1305     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1306 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
 1307 
 1308 /*** GENERATED CODE ***/
 1309 #define is_HORIZWS_cp_high(cp)                                              \
 1310 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
 1311 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp &&                           \
 1312 ( 0x202F == cp || ( 0x202F < cp &&                                          \
 1313 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
 1314 
 1315 /*
 1316     VERTWS: Vertical Whitespace: \v \V
 1317 
 1318     \p{VertSpace}
 1319 */
 1320 /*** GENERATED CODE ***/
 1321 #define is_VERTWS_high(s)                                                   \
 1322 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )
 1323 
 1324 /*** GENERATED CODE ***/
 1325 #define is_VERTWS_cp_high(cp)                                               \
 1326 ( 0x2028 == cp || 0x2029 == cp )
 1327 
 1328 /*
 1329     XDIGIT: Hexadecimal digits
 1330 
 1331     \p{XDigit}
 1332 */
 1333 /*** GENERATED CODE ***/
 1334 #define is_XDIGIT_high(s)                                                   \
 1335 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\
 1336         ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x67 ) ) ? 4 : 0 )\
 1337     : ( ( inRANGE(((const U8*)s)[2], 0x67, 0x68 ) ) && ( inRANGE(((const U8*)s)[3], 0x42, 0x47 ) ) ) ? 4 : 0 ) : 0 )
 1338 
 1339 /*** GENERATED CODE ***/
 1340 #define is_XDIGIT_cp_high(cp)                                               \
 1341 ( inRANGE(cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp &&                           \
 1342 ( inRANGE(cp, 0xFF21, 0xFF26) || inRANGE(cp, 0xFF41, 0xFF46) ) ) )
 1343 
 1344 /*
 1345     XPERLSPACE: \p{XPerlSpace}
 1346 
 1347     \p{XPerlSpace}
 1348 */
 1349 /*** GENERATED CODE ***/
 1350 #define is_XPERLSPACE_high(s)                                               \
 1351 ( ( 0xBD == ((const U8*)s)[0] ) ?                                           \
 1352     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1353 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
 1354     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
 1355     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
 1356     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
 1357     ( ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
 1358     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1359 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
 1360 
 1361 /*** GENERATED CODE ***/
 1362 #define is_XPERLSPACE_cp_high(cp)                                           \
 1363 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
 1364 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp &&                           \
 1365 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
 1366 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
 1367 ( 0x202F == cp || ( 0x202F < cp &&                                          \
 1368 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
 1369 
 1370 /*
 1371     NONCHAR: Non character code points
 1372 
 1373     \p{_Perl_Nchar}
 1374 */
 1375 /*** GENERATED CODE ***/
 1376 #define is_NONCHAR_utf8_safe(s,e)                                           \
 1377 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
 1378         ( ( 0x72 == ((const U8*)s)[1] ) ?                               \
 1379         ( ( 0x55 == ((const U8*)s)[2] ) ?                           \
 1380             ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x72 ) ) ? 4 : 0 )\
 1381         : ( 0x56 == ((const U8*)s)[2] ) ?                           \
 1382             ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
 1383         : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x71, 0x72 ) ) ) ? 4 : 0 )\
 1384         : 0 )                                                           \
 1385     : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
 1386         ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x71, 0x72 ) ) ) ? 4 : 0 )\
 1387     : ( 0xED == ((const U8*)s)[0] ) ?                                   \
 1388         ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x5F || ((const U8*)s)[1] == 0x63 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) || ((const U8*)s)[1] == 0x69 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x70 ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x71, 0x72 ) ) ) ? 5 : 0 )\
 1389     : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x71, 0x72 ) ) ) ? 5 : 0 ) : 0 )
 1390 
 1391 /*
 1392     SURROGATE: Surrogate code points
 1393 
 1394     \p{_Perl_Surrogate}
 1395 */
 1396 /*** GENERATED CODE ***/
 1397 #define is_SURROGATE_utf8_safe(s,e)                                         \
 1398 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0x64, 0x65 ) ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x72 ) ) ) ? 4 : 0 )
 1399 
 1400 /*
 1401     QUOTEMETA: Meta-characters that \Q should quote
 1402 
 1403     \p{_Perl_Quotemeta}
 1404 */
 1405 /*** GENERATED CODE ***/
 1406 #define is_QUOTEMETA_high_part0(s)                                          \
 1407 ( ( 0x51 == ((const U8*)s)[1] ) ?                                           \
 1408     ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
 1409     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
 1410 
 1411 
 1412 /*** GENERATED CODE ***/
 1413 #define is_QUOTEMETA_high_part1(s)                                          \
 1414 ( ( 0xBD == ((const U8*)s)[0] ) ?                                           \
 1415     ( ( 0x62 == ((const U8*)s)[1] ) ?                                       \
 1416     ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
 1417     : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x62, 0x63 ) ) ) ? 3 : 0 )\
 1418 : ( 0xBE == ((const U8*)s)[0] ) ?                                           \
 1419     ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x52, 0x55 ) ) ) ? 3 : 0 )\
 1420 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
 1421     ( ( 0x41 == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x54, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ?\
 1422     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
 1423     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
 1424     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x71 ) ) ? 3 : 0 )\
 1425     : ( 0x43 == ((const U8*)s)[1] ) ?                                       \
 1426     ( ( inRANGE(((const U8*)s)[2], 0x42, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x63, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
 1427     : ( 0x44 == ((const U8*)s)[1] ) ?                                       \
 1428     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) ) ? 3 : 0 )\
 1429     : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
 1430 : ( 0xCB == ((const U8*)s)[0] ) ?                                           \
 1431     ( ( inRANGE(((const U8*)s)[1], 0x41, 0x43 ) || inRANGE(((const U8*)s)[1], 0x49, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x68 ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ?\
 1432     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
 1433     : ( 0x69 == ((const U8*)s)[1] ) ?                                       \
 1434     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x63 ) ) ? 3 : 0 )\
 1435     : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
 1436 : ( 0xCC == ((const U8*)s)[0] ) ?                                           \
 1437     ( ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
 1438 : ( 0xCD == ((const U8*)s)[0] ) ?                                           \
 1439     ( ( ( inRANGE(((const U8*)s)[1], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
 1440 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
 1441     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
 1442     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) || inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
 1443     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
 1444     ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
 1445     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1446 : ( 0xDD == ((const U8*)s)[0] ) ?                                           \
 1447     ( ( 0x72 == ((const U8*)s)[1] ) ?                                       \
 1448     ( ( 0x4A == ((const U8*)s)[2] ) ?                                   \
 1449         ( ( inRANGE(((const U8*)s)[3], 0x71, 0x72 ) ) ? 4 : 0 )         \
 1450     : ( 0x57 == ((const U8*)s)[2] ) ?                                   \
 1451         ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
 1452     : ( 0x59 == ((const U8*)s)[2] ) ?                                   \
 1453         ( ( inRANGE(((const U8*)s)[3], 0x46, 0x47 ) ) ? 4 : 0 )         \
 1454     : ( 0x65 == ((const U8*)s)[2] ) ?                                   \
 1455         ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
 1456     : ( 0x70 == ((const U8*)s)[2] ) ?                                   \
 1457         ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
 1458     : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x66 ) ) ) ? 4 : 0 )\
 1459     : 0 )                                                                   \
 1460 : ( 0xDF == ((const U8*)s)[0] ) ?                                           \
 1461     ( ( 0x56 == ((const U8*)s)[1] ) ?                                       \
 1462     ( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x44 ) ) ) ? 4 : 0 )\
 1463     : ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x68 ) ) ) ? 4 : 0 )\
 1464 : ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x72 ) ) ) && ( inRANGE(((const U8*)s)[4], 0x41, 0x4A ) || inRANGE(((const U8*)s)[4], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[4] || inRANGE(((const U8*)s)[4], 0x62, 0x6A ) || inRANGE(((const U8*)s)[4], 0x70, 0x72 ) ) ) ? 5 : 0 )
 1465 
 1466 
 1467 /*** GENERATED CODE ***/
 1468 #define is_QUOTEMETA_high(s)                                                \
 1469 ( ( 0xAF == ((const U8*)s)[0] ) ?                                           \
 1470     ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1471 : ( 0xB7 == ((const U8*)s)[0] ) ?                                           \
 1472     ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1473 : ( 0xBC == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
 1474 
 1475 /*
 1476     MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
 1477 
 1478     &regcharclass_multi_char_folds::multi_char_folds(1)
 1479 */
 1480 /*** GENERATED CODE ***/
 1481 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
 1482 ( ( 0x86 == ((const U8*)s)[1] ) ?                                           \
 1483         ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
 1484     : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
 1485 
 1486 
 1487 /*** GENERATED CODE ***/
 1488 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
 1489 ( ( 0x88 == ((const U8*)s)[0] ) ?                                           \
 1490     ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1491     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
 1492     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1493     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
 1494     ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1495     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
 1496     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1497     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
 1498     ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
 1499     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
 1500     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1501     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
 1502     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1503     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
 1504     ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1505     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
 1506     ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
 1507         ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1508     : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
 1509         ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
 1510         ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
 1511             ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
 1512         : 0 )                                                       \
 1513         : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1514     : ( 0x67 == ((const U8*)s)[1] ) ?                                   \
 1515         ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
 1516         ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
 1517             ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
 1518             ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
 1519             : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
 1520         : 0 )                                                       \
 1521         : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1522     : 0 )                                                               \
 1523     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
 1524     ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
 1525         ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1526     : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
 1527         ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
 1528         ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
 1529             ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
 1530             ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
 1531             : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
 1532         : ( 0x5F == ((const U8*)s)[3] ) ?                           \
 1533             ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
 1534             ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 4 )\
 1535             : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
 1536         : 0 )                                                       \
 1537         : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1538     : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
 1539         ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
 1540         ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
 1541             ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
 1542         : 0 )                                                       \
 1543         : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1544     : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1545     : ( 0xB7 == ((const U8*)s)[0] ) ?                                       \
 1546     ( ( 0x52 == ((const U8*)s)[1] ) ?                                   \
 1547         ( ( 0x46 == ((const U8*)s)[2] ) ?                               \
 1548         ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
 1549         : ( 0x62 == ((const U8*)s)[2] ) ?                               \
 1550         ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x46 == ((const U8*)s)[5] || 0x52 == ((const U8*)s)[5] || 0x54 == ((const U8*)s)[5] || 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
 1551         : ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
 1552     : 0 )                                                               \
 1553     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
 1554     ( ( inRANGE(((const U8*)s)[1], 0x66, 0x67 ) ) ?                     \
 1555         ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
 1556     : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
 1557     : 0 )
 1558 
 1559 
 1560 /*** GENERATED CODE ***/
 1561 #define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e)                             \
 1562 ( ( 0x81 == ((const U8*)s)[0] ) ?                                           \
 1563     ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1564     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
 1565     ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
 1566         ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
 1567     : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
 1568     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
 1569     ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1570     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
 1571     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1572     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
 1573     ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1574     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
 1575     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1576     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
 1577     ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
 1578     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
 1579     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1580     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
 1581     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1582     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
 1583     ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1584     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
 1585     ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
 1586         ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1587     : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
 1588         ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
 1589         ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
 1590         : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1591     : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1592     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
 1593     ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
 1594         ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1595     : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
 1596         ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
 1597         ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 )                   \
 1598         : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1599     : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
 1600         ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
 1601         ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
 1602         : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1603     : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1604     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
 1605     ( ( inRANGE(((const U8*)s)[1], 0x66, 0x67 ) ) ?                     \
 1606         ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
 1607     : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
 1608     : 0 )
 1609 
 1610 
 1611 /*** GENERATED CODE ***/
 1612 #define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e)                             \
 1613 ( ((e)-(s) > 3) ?                                                           \
 1614     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
 1615     ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1616     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
 1617     ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
 1618         ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
 1619     : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
 1620     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
 1621     ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1622     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
 1623     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1624     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
 1625     ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1626     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
 1627     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1628     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
 1629     ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
 1630     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
 1631     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1632     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
 1633     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1634     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
 1635     ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1636     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
 1637     ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
 1638         ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1639     : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
 1640         ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
 1641         ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
 1642         : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1643     : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1644     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
 1645     ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
 1646         ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1647     : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
 1648         ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
 1649         ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 )                   \
 1650         : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1651     : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
 1652         ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
 1653         ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
 1654         : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1655     : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
 1656     : 0 )                                                                   \
 1657 : ((e)-(s) > 2) ?                                                           \
 1658     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
 1659     ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1660     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
 1661     ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
 1662         ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
 1663     : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
 1664     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
 1665     ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1666     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
 1667     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1668     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
 1669     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1670     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
 1671     ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 )             \
 1672     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
 1673     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1674     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
 1675     ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1676     : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1677 : ((e)-(s) > 1) ?                                                           \
 1678     ( ( 0x86 == ((const U8*)s)[0] ) ?                                       \
 1679     ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
 1680     : ( ( 0xA2 == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ) ? 2 : 0 )\
 1681 : 0 )
 1682 
 1683 
 1684 /*** GENERATED CODE ***/
 1685 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
 1686 ( ((e)-(s) > 5) ?                                                           \
 1687     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
 1688     ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1689     : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
 1690 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
 1691 
 1692 /*
 1693     MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
 1694 
 1695     &regcharclass_multi_char_folds::multi_char_folds(0)
 1696 */
 1697 /*** GENERATED CODE ***/
 1698 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
 1699 ( ((e)-(s) > 2) ?                                                           \
 1700     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
 1701     ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ?                        \
 1702         ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
 1703     : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
 1704     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
 1705 : ((e)-(s) > 1) ?                                                           \
 1706     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
 1707     ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
 1708     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
 1709 : 0 )
 1710 
 1711 /*
 1712     FOLDS_TO_MULTI: characters that fold to multi-char strings
 1713 
 1714     \p{_Perl_Folds_To_Multi_Char}
 1715 */
 1716 /*** GENERATED CODE ***/
 1717 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
 1718 ( ( 0x80 == ((const U8*)s)[0] ) ?                                           \
 1719     ( ( 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1720 : ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB2, 0xB3 ) ) ?\
 1721     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1722 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
 1723     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1724 : ( 0xB7 == ((const U8*)s)[0] ) ?                                           \
 1725     ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1726 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
 1727     ( ( 0x62 == ((const U8*)s)[1] ) ?                                       \
 1728     ( ( inRANGE(((const U8*)s)[2], 0x64, 0x68 ) || 0x71 == ((const U8*)s)[2] ) ? 3 : 0 )\
 1729     : ( 0x68 == ((const U8*)s)[1] ) ?                                       \
 1730     ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ? 3 : 0 )\
 1731     : ( 0x6A == ((const U8*)s)[1] ) ?                                       \
 1732     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
 1733     : ( 0x70 == ((const U8*)s)[1] ) ?                                       \
 1734     ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) || 0x59 == ((const U8*)s)[2] || 0x5F == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x64, 0x65 ) || 0x6A == ((const U8*)s)[2] ) ? 3 : 0 )\
 1735     : ( 0x71 == ((const U8*)s)[1] ) ?                                       \
 1736     ( ( inRANGE(((const U8*)s)[2], 0x43, 0x45 ) || inRANGE(((const U8*)s)[2], 0x47, 0x48 ) || 0x53 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x64, 0x65 ) ) ? 3 : 0 )\
 1737     : ( ( 0x72 == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xDE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x59 || ((const U8*)s)[2] == 0x5F || ( ( ((const U8*)s)[2] & 0xF7 ) == 0x62 ) ) ) ? 3 : 0 )\
 1738 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x65 ) ) ) ? 4 : 0 )
 1739 
 1740 /*
 1741     PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
 1742 
 1743     \p{_Perl_Problematic_Locale_Folds}
 1744 */
 1745 /*** GENERATED CODE ***/
 1746 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
 1747 ( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x5E ) || inRANGE(((const U8*)s)[0], 0x60, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xB0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xBA, 0xBB ) || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
 1748 : ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
 1749     ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ? 2 : 0 )\
 1750 : ( 0x8C == ((const U8*)s)[0] ) ?                                           \
 1751     ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 )                 \
 1752 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
 1753     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1754 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
 1755     ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )  \
 1756 : ( 0x9B == ((const U8*)s)[0] ) ?                                           \
 1757     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1758 : ( 0xAD == ((const U8*)s)[0] ) ?                                           \
 1759     ( ( 0x48 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1760 : ( inRANGE(((const U8*)s)[0], 0xB2, 0xB3 ) ) ?                             \
 1761     ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1762 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
 1763     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x64, 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1764 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
 1765     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
 1766 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
 1767 
 1768 /*** GENERATED CODE ***/
 1769 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
 1770 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
 1771 ( 0x130 == cp || ( 0x130 < cp &&                                            \
 1772 ( 0x131 == cp || ( 0x131 < cp &&                                            \
 1773 ( 0x149 == cp || ( 0x149 < cp &&                                            \
 1774 ( 0x178 == cp || ( 0x178 < cp &&                                            \
 1775 ( 0x17F == cp || ( 0x17F < cp &&                                            \
 1776 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
 1777 ( 0x307 == cp || ( 0x307 < cp &&                                            \
 1778 ( 0x39C == cp || ( 0x39C < cp &&                                            \
 1779 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
 1780 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp &&                           \
 1781 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
 1782 ( 0x212A == cp || ( 0x212A < cp &&                                          \
 1783 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
 1784 
 1785 /*
 1786     PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
 1787 
 1788     \p{_Perl_Problematic_Locale_Foldeds_Start}
 1789 */
 1790 /*** GENERATED CODE ***/
 1791 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
 1792 ( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x5E ) || inRANGE(((const U8*)s)[0], 0x60, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xB0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xBA, 0xBB ) || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
 1793 : ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
 1794     ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ? 2 : 0 )\
 1795 : ( 0x8C == ((const U8*)s)[0] ) ?                                           \
 1796     ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 )                 \
 1797 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
 1798     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1799 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
 1800     ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )  \
 1801 : ( 0x9B == ((const U8*)s)[0] ) ?                                           \
 1802     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1803 : ( 0xAA == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB2, 0xB3 ) ) ?\
 1804     ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
 1805 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
 1806     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x64, 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
 1807 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
 1808     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
 1809 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
 1810 
 1811 /*** GENERATED CODE ***/
 1812 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
 1813 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
 1814 ( 0x130 == cp || ( 0x130 < cp &&                                            \
 1815 ( 0x131 == cp || ( 0x131 < cp &&                                            \
 1816 ( 0x149 == cp || ( 0x149 < cp &&                                            \
 1817 ( 0x178 == cp || ( 0x178 < cp &&                                            \
 1818 ( 0x17F == cp || ( 0x17F < cp &&                                            \
 1819 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
 1820 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
 1821 ( 0x39C == cp || ( 0x39C < cp &&                                            \
 1822 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
 1823 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp &&                           \
 1824 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
 1825 ( 0x212A == cp || ( 0x212A < cp &&                                          \
 1826 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
 1827 
 1828 /*
 1829     PATWS: pattern white space
 1830 
 1831     \p{_Perl_PatWS}
 1832 */
 1833 /*** GENERATED CODE ***/
 1834 #define is_PATWS_safe(s,e,is_utf8)                                          \
 1835 ( ( LIKELY((e) > (s)) ) ?                                                   \
 1836     ( ( 0x05 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] || 0x40 == ((const U8*)s)[0] ) ? 1\
 1837     : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
 1838             ( ( inRANGE(((const U8*)s)[2], 0x55, 0x56 ) ) ? 3 : 0 ) \
 1839         : ( ( 0x42 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 ) : 0 )\
 1840 : 0 )
 1841 
 1842 /*** GENERATED CODE ***/
 1843 #define is_PATWS_cp(cp)                                                     \
 1844 ( 0x05 == cp || ( 0x05 < cp &&                                              \
 1845 ( inRANGE(cp, 0x0B, 0x0D) || ( 0x0D < cp &&                                 \
 1846 ( 0x15 == cp || ( 0x15 < cp &&                                              \
 1847 ( 0x25 == cp || ( 0x25 < cp &&                                              \
 1848 ( 0x40 == cp || ( 0x40 < cp &&                                              \
 1849 ( 0x200E == cp || ( 0x200E < cp &&                                          \
 1850 ( 0x200F == cp || ( 0x200F < cp &&                                          \
 1851 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
 1852 
 1853 #endif  /* EBCDIC 037 */
 1854 
 1855 #endif /* PERL_REGCHARCLASS_H_ */
 1856 
 1857 /* Generated from:
 1858  * d34c77b7e7a94986cc82056919f4ffc1503b73091561e16bd8ef145ac0fd04c5 lib/Unicode/UCD.pm
 1859  * 5e91b649379ec79af7cfb6b09410a24557cba4c6d733cd0a2b8a78a1448736d2 lib/unicore/ArabicShaping.txt
 1860  * f5feb19cd084b2b1568fbc0f94f4b4b54941406e7fb36c7570f8352fd5022dbe lib/unicore/BidiBrackets.txt
 1861  * e6cbd8ffe94f2e0fbfa6695d6c06c1e72eef7d3aa93cb6329d111285198b5e62 lib/unicore/BidiMirroring.txt
 1862  * a28b205afe8625fffdb6544a5fe14cf02b91493d9900f07820fa2102a17548f7 lib/unicore/Blocks.txt
 1863  * 9c772627c6ee77eea6a17b42927b8ee28ca05dc65d6a511062104baaf3d12294 lib/unicore/CaseFolding.txt
 1864  * abc8394c5bde62453118b00c1c5842160a04d7fffb2e829ee5426b846596d081 lib/unicore/CompositionExclusions.txt
 1865  * 2fc081011d8fabaf7cf4937732dd5a6d6a57e492c43f3adfeded513387ee0ec3 lib/unicore/DAge.txt
 1866  * a6eb7a8671fb532fbd88c37fd7b20b5b2e7dbfc8b121f74c14abe2947db0da68 lib/unicore/DCoreProperties.txt
 1867  * 92dcdda84142194a1596f22180fcdf8c0e7f86897f09cc9203c7dc636c549f5f lib/unicore/DNormalizationProps.txt
 1868  * 904500178b2e752635bef27aaed3a2a3718a100bce35ff96b3890be7a8315d8f lib/unicore/EastAsianWidth.txt
 1869  * 1989b03d93023d8f5cc33eebf0d2ea80c8bd8f8c97843059ea039acb582c2078 lib/unicore/EmojiData.txt
 1870  * d7930c2a7318e66b4ba756d5e5b41fbc586c2ad43d450ae9d320a758510bae2e lib/unicore/EquivalentUnifiedIdeograph.txt
 1871  * 8606af08712a8c18fe268d418e2e5a87eddee6e190cce4c2d5a76b4fadf035e8 lib/unicore/HangulSyllableType.txt
 1872  * 49a1bf18b048454154881f6a8a605b5e2fc73e85fcc4df1cb26d52e8c2aeb9bf lib/unicore/IndicPositionalCategory.txt
 1873  * 1b6f3ef6e00e5b2e2a93d2d3c954ca1cce368599c5f11874cd0f0ce222d4637b lib/unicore/IndicSyllabicCategory.txt
 1874  * 285c5c1ae458bc3ccd6a1398a94d2d67ce6bc1d7fc0f098762836050345e9434 lib/unicore/Jamo.txt
 1875  * 961f842fc70b5afd1d82c6645e68c10d1f701382aed38ae38cb2ff27f671903c lib/unicore/LineBreak.txt
 1876  * ff61a0687d2f32c0dd1094254b8bde967883b43c2d4d50fd17531d498e41ab2c lib/unicore/NameAliases.txt
 1877  * d3eb9a288ebeaf9de1237989f490705e287b6f610b59d2459fb1b7c2d8e39c39 lib/unicore/NamedSequences.txt
 1878  * d30d3ee430cf3527449d024954f053e419fa4aa2246eb59e5cd8d621af0c4b3f lib/unicore/PropList.txt
 1879  * efce54f7c715a332c19b3d14c6a0eea30c6cde91caf6ff0d21c755be933736f4 lib/unicore/PropValueAliases.txt
 1880  * d3cc3f9f0b6a8f0b7ef1d6ef202675426c28f4a75de01fc69ed977a93a00982b lib/unicore/PropertyAliases.txt
 1881  * 3746848c181b5dbc1e614dfac9b8a5e3568e6525c693ac14e692ac55dec57e91 lib/unicore/ScriptExtensions.txt
 1882  * e6313a8edfd24f36c7a006fbcf1d1b7245b5dd009c6dde80441f0da08b822c43 lib/unicore/Scripts.txt
 1883  * 817ce2e9edca8e075a153f54b8f3b020345e37652cd2bda9b1495c366af17e7e lib/unicore/SpecialCasing.txt
 1884  * 93ab1acd8fd9d450463b50ae77eab151a7cda48f98b25b56baed8070f80fc936 lib/unicore/UnicodeData.txt
 1885  * ec5ba64af58297a46de17848eb984d2b231adb304de92e9d0d3befdbf9dc2551 lib/unicore/VerticalOrientation.txt
 1886  * 95bd55cf803b93eb0b4990cf0e1d70ede263b36412d9c6921fd6f15cef058961 lib/unicore/auxiliary/GCBTest.txt
 1887  * 39d73448fd257e6082f83ddf4c8bf6feb191e85dc8fc56b1a8512482de5e3dea lib/unicore/auxiliary/GraphemeBreakProperty.txt
 1888  * f385e70f79f5959ae66d64b00f4bda39db6cef78e5363a0cdd88db46eafc6c8f lib/unicore/auxiliary/LBTest.txt
 1889  * 7d6c909af97d0ab545a132d412f6e4e65c7eb5158514a7feb9bf00bcd05875f9 lib/unicore/auxiliary/SBTest.txt
 1890  * c47d674ef4170c46185bf56f7a4c6627f65f012295e0994f7dc4aea51f8fd8cf lib/unicore/auxiliary/SentenceBreakProperty.txt
 1891  * 3e3320bbbe775de7f1a0b9a30021eb949116a9b05cb461c90596c5ecf1743831 lib/unicore/auxiliary/WBTest.txt
 1892  * f221f89fe3bb3becc00de726d5694c4b7f464c316baff6d339b2ff3900bcb96c lib/unicore/auxiliary/WordBreakProperty.txt
 1893  * db2c41c618bab54b00e58223ad11cec550f9b9fd1a471de236e660da92fe4870 lib/unicore/extracted/DBidiClass.txt
 1894  * fecd8a1c49935d794c4c1012f4158aa536a13049a4c10d01aaf7b5f90f3b2cbc lib/unicore/extracted/DBinaryProperties.txt
 1895  * db6f38fb4aa8b9181b5e6a9f320de9d5c2c9b5687116a619b3cb90138b025e0b lib/unicore/extracted/DCombiningClass.txt
 1896  * 2524f69c175831fd84bfbaf13ea37992f41db167d728c51b1d0002c1d0b130b0 lib/unicore/extracted/DDecompositionType.txt
 1897  * 16852301d54ae59b5cfe0daa6b8e17fb688ed055d59b2a5a11eaafc650cc9d30 lib/unicore/extracted/DEastAsianWidth.txt
 1898  * 78f898b988049a5bea5039cea6ffe87a92596859ac660a6c438519b512fe2ee6 lib/unicore/extracted/DGeneralCategory.txt
 1899  * 33441692403901287c834f96bd33b671133a6f74e2732c61a497608b9e434932 lib/unicore/extracted/DJoinGroup.txt
 1900  * a792ac5ef602e3bace679cc96d7491701dcdb73d81c782253de88fdcc5e70e50 lib/unicore/extracted/DJoinType.txt
 1901  * 78e2600e24fa7d5ab62117de50b382f8b31b08401c37a0782c38dacb340b64e7 lib/unicore/extracted/DLineBreak.txt
 1902  * 1bde4ad73e271c6349fbd1972e54f38bba5cc1900c28f678e79b9e8909b31793 lib/unicore/extracted/DNumType.txt
 1903  * 6278722699123f3890e4b1cc42011e96d8960e4958a3b93484361530983d2611 lib/unicore/extracted/DNumValues.txt
 1904  * b3d90fc23817ea4e33e9a90107c0a6c7b23314efd5712905ed172624d5524693 lib/unicore/mktables
 1905  * a712c758275b460d18fa77a26ed3589689bb3f69dcc1ea99b913e32db92a5cd2 lib/unicore/version
 1906  * 2680b9254eb236c5c090f11b149605043e8c8433661b96efc4a42fb4709342a5 regen/charset_translations.pl
 1907  * 830144f6afdd047b009754ffa06134397268f6638837fe85283483eb0cfdd558 regen/regcharclass.pl
 1908  * c6b0b0b7e4ac4f5a57d203e84194749987477ea55b2366e3b343aadf8cc7d6b5 regen/regcharclass_multi_char_folds.pl
 1909  * ex: set ro: */