Merge branch 'vlb' into blead
[perl.git] / regcharclass.h
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     ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 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] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
38     : ( 0x85 == ((const U8*)s)[0] ) )                                       \
39 : ((e)-(s) > 1) ?                                                           \
40     ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 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     ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 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     ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 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] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
62 : ((e)-(s) > 1) ?                                                           \
63     ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 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     ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D )              \
69 : 0 )
70
71 /*** GENERATED CODE ***/
72 #define is_LNBREAK_latin1_safe(s,e)                                         \
73 ( ((e)-(s) > 1) ?                                                           \
74     ( ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 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     ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 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         ( ( ( ((const U8*)s)[2] <= 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 ( ( 0x2000 <= cp && cp <= 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] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 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         ( ( ( 0x90 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x99 ) || ( 0xA1 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xA6 ) ) ? 3 : 0 )\
127     : ( ( 0xBD == ((const U8*)s)[1] ) && ( 0x81 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )\
128 : 0 )
129
130 /*** GENERATED CODE ***/
131 #define is_XDIGIT_cp_high(cp)                                               \
132 ( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
133 ( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 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         ( ( ( ((const U8*)s)[2] <= 0x8A ) || ( ((const U8*)s)[2] & 0xFE ) == 0xA8 || 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 ( ( 0x2000 <= cp && cp <= 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                 ( ( 0x90 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xAF ) ? 3 : 0 )\
169             : ( ( 0xBF == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xBE ) ) ? 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] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0xBE ) ) ? 4 : 0 )\
172         : ( 0xF1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xF3 ) ?      \
173             ( ( ( ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0xBE ) ) ? 4 : 0 )\
174         : ( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( 0x8F == ((const U8*)s)[1] ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0xBE ) ) ? 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] ) ) && ( ( ((const U8*)s)[1] & 0xE0 ) == 0xA0 ) ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 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         ( ( 0x9F == ((const U8*)s)[2] || 0xA0 == ((const U8*)s)[2] ) ? 3 : 0 )\
199     : ( 0x9A == ((const U8*)s)[1] ) ?                                       \
200         ( ( 0x80 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
201     : ( 0x9E == ((const U8*)s)[1] ) ?                                       \
202         ( ( ( ((const U8*)s)[2] & 0xFE ) == 0xB4 ) ? 3 : 0 )                \
203     : ( ( 0xA0 == ((const U8*)s)[1] ) && ( 0x8B <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x8E ) ) ? 3 : 0 )\
204 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
205     ( ( 0x80 == ((const U8*)s)[1] ) ?                                       \
206         ( ( ((const U8*)s)[2] <= 0xBE ) ? 3 : 0 )                           \
207     : ( 0x81 == ((const U8*)s)[1] ) ?                                       \
208         ( ( ( 0x81 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x93 ) || ( 0x95 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xAF ) ) ? 3 : 0 )\
209     : ( 0x86 == ((const U8*)s)[1] ) ?                                       \
210         ( ( ((const U8*)s)[2] >= 0x90 ) ? 3 : 0 )                           \
211     : ( ( 0x87 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x90 ) || ( 0x94 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x9C ) || ( 0x9F <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xAF ) || ( ((const U8*)s)[1] & 0xFE ) == 0xB8 ) ?\
212         3                                                                   \
213     : ( 0x91 == ((const U8*)s)[1] ) ?                                       \
214         ( ( ((const U8*)s)[2] <= 0x9F ) ? 3 : 0 )                           \
215     : ( 0x9D == ((const U8*)s)[1] ) ?                                       \
216         ( ( ((const U8*)s)[2] <= 0xB5 ) ? 3 : 0 )                           \
217     : ( ( 0x9E == ((const U8*)s)[1] ) && ( ((const U8*)s)[2] >= 0x94 ) ) ? 3 : 0 )\
218 : ( 0xE3 == ((const U8*)s)[0] ) ?                                           \
219     ( ( 0x80 == ((const U8*)s)[1] ) ?                                       \
220         ( ( ( ((const U8*)s)[2] <= 0x83 ) || ( 0x88 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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         ( ( ((const U8*)s)[2] >= 0xBE ) ? 3 : 0 )                           \
225     : ( 0xB8 == ((const U8*)s)[1] ) ?                                       \
226         ( ( ((const U8*)s)[2] <= 0x8F ) ? 3 : 0 )                           \
227     : ( 0xB9 == ((const U8*)s)[1] ) ?                                       \
228         ( ( 0x85 == ((const U8*)s)[2] || 0x86 == ((const U8*)s)[2] ) ? 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] ) && ( 0xB0 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xB8 ) ) ? 3 : 0 )\
234 : ( 0xF0 == ((const U8*)s)[0] ) ?                                           \
235     ( ( 0x9B == ((const U8*)s)[1] ) ?                                       \
236         ( ( ( 0xB2 == ((const U8*)s)[2] ) && ( ( ((const U8*)s)[3] & 0xFC ) == 0xA0 ) ) ? 4 : 0 )\
237     : ( ( ( 0x9D == ((const U8*)s)[1] ) && ( 0x85 == ((const U8*)s)[2] ) ) && ( 0xB3 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 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         ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 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         ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 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         ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 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] ) && ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ) ? 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         ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 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                         ( ( ( ((const U8*)s)[5] & 0xFE ) == 0x80 ) ? 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                         ( ( ( ((const U8*)s)[5] & 0xFE ) == 0x80 ) ? 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                         ( ( ( ((const U8*)s)[5] & 0xFE ) == 0x80 ) ? 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 ) && ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 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 ) && ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 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         ( ( ( 0x96 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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         ( ( ( ( ((const U8*)s)[2] & 0xE0 ) == 0x80 ) || ( ( ((const U8*)s)[2] & 0xF0 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFA ) == 0xB2 ) || ( ( ((const U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ? 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] ) ) && ( ( ((const U8*)s)[2] <= 0x86 ) || ( 0x93 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 : ( ( ((const U8*)s)[0] & 0xFE ) == 0xC2 ) ?                                \
514     2                                                                       \
515 : ( 0xC4 == ((const U8*)s)[0] ) ?                                           \
516     ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xB0 ) ? 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] ) && ( ( 0x96 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
527 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
528     ( ( ( 0x84 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
529 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( ((const U8*)s)[2] <= 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 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
544 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
545 ( 0x212A == cp || ( 0x212A < cp &&                                          \
546 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 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 : ( ( ((const U8*)s)[0] & 0xFE ) == 0xC2 ) ?                                \
557     2                                                                       \
558 : ( 0xC4 == ((const U8*)s)[0] ) ?                                           \
559     ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xB0 ) ? 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] ) && ( ( 0x96 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
570 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
571     ( ( ( 0x84 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
572 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( ((const U8*)s)[2] <= 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 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
587 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
588 ( 0x212A == cp || ( 0x212A < cp &&                                          \
589 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 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     ( ( ( 0x09 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 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] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0x8E || ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
606         : 0 )                                                               \
607 : 0 )
608
609 /*** GENERATED CODE ***/
610 #define is_PATWS_cp(cp)                                                     \
611 ( ( 0x09 <= cp && cp <= 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] ) ) && ( ( ((const U8*)s)[1] & 0xE0 ) == 0x80 ) ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 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     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 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] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
646 : ((e)-(s) > 1) ?                                                           \
647     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 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     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 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     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 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] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
662 : ((e)-(s) > 1) ?                                                           \
663     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 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     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 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     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 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     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 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         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 ( ( 0x2000 <= cp && cp <= 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] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 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             ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x68 ) ) ? 4 : 0 )\
728         : ( ( ( ((const U8*)s)[2] & 0xFE ) == 0x68 ) && ( 0x42 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
729
730 /*** GENERATED CODE ***/
731 #define is_XDIGIT_cp_high(cp)                                               \
732 ( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
733 ( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 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         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
747     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
748         ( ( ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || 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 ( ( 0x2000 <= cp && cp <= 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                     ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
772                 : ( 0x56 == ((const U8*)s)[2] ) ?                           \
773                     ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
774                 : ( ( 0x73 == ((const U8*)s)[2] ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 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] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 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] ) ) && ( ( ((const U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 )\
780         : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( ( ((const U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 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] ) ) && ( 0x65 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 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_part0(s)                                          \
798 ( ( 0x41 == ((const U8*)s)[1] || ( 0x54 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ?\
799         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
800     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
801         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
802     : ( 0x43 == ((const U8*)s)[1] ) ?                                       \
803         ( ( ( 0x42 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x62 == ((const U8*)s)[2] || ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
804     : ( 0x44 == ((const U8*)s)[1] ) ?                                       \
805         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
806     : ( ( 0x53 == ((const U8*)s)[1] ) && ( ( 0x57 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )
807
808
809 /*** GENERATED CODE ***/
810 #define is_QUOTEMETA_high_part1(s)                                          \
811 ( ( 0xCB == ((const U8*)s)[0] ) ?                                           \
812     ( ( ( ( ((const U8*)s)[1] & 0xE7 ) == 0x41 ) || ( ( ((const U8*)s)[1] & 0xCE ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ( ( ((const U8*)s)[1] & 0xFC ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ( ( ((const U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFE ) == 0x68 ) || ((const U8*)s)[1] == 0x71 ) ?\
813         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
814     : ( 0x6A == ((const U8*)s)[1] ) ?                                       \
815         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x64 ) ) ? 3 : 0 )\
816     : ( ( 0x70 == ((const U8*)s)[1] ) && ( ( 0x63 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
817 : ( 0xCC == ((const U8*)s)[0] ) ?                                           \
818     ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
819 : ( 0xCD == ((const U8*)s)[0] ) ?                                           \
820     ( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x62 == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
821 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
822     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
823         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) || ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
824     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
825         ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
826     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
827 : ( 0xDD == ((const U8*)s)[0] ) ?                                           \
828     ( ( 0x73 == ((const U8*)s)[1] ) ?                                       \
829         ( ( 0x4A == ((const U8*)s)[2] ) ?                                   \
830             ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ? 4 : 0 )            \
831         : ( 0x57 == ((const U8*)s)[2] ) ?                                   \
832             ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
833         : ( 0x59 == ((const U8*)s)[2] ) ?                                   \
834             ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 )            \
835         : ( 0x66 == ((const U8*)s)[2] ) ?                                   \
836             ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
837         : ( 0x71 == ((const U8*)s)[2] ) ?                                   \
838             ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
839         : ( ( 0x73 == ((const U8*)s)[2] ) && ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x67 ) ) ) ? 4 : 0 )\
840     : 0 )                                                                   \
841 : ( 0xDF == ((const U8*)s)[0] ) ?                                           \
842     ( ( 0x56 == ((const U8*)s)[1] ) ?                                       \
843         ( ( ( 0x46 == ((const U8*)s)[2] ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
844     : ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x69 ) ) ? 4 : 0 )\
845 : ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )
846
847
848 /*** GENERATED CODE ***/
849 #define is_QUOTEMETA_high(s)                                                \
850 ( ( 0xB1 == ((const U8*)s)[0] ) ?                                           \
851     ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
852 : ( 0xB8 == ((const U8*)s)[0] ) ?                                           \
853     ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
854 : ( 0xBB == ((const U8*)s)[0] ) ?                                           \
855     ( ( 0x51 == ((const U8*)s)[1] ) ?                                       \
856         ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
857     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
858 : ( 0xBC == ((const U8*)s)[0] ) ?                                           \
859     ( ( 0x63 == ((const U8*)s)[1] ) ?                                       \
860         ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
861     : ( ( 0x71 == ((const U8*)s)[1] ) && ( 0x63 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
862 : ( 0xBE == ((const U8*)s)[0] ) ?                                           \
863     ( ( ( 0x41 == ((const U8*)s)[1] ) && ( 0x52 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
864 : ( 0xCA == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
865
866 /*
867         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
868
869         &regcharclass_multi_char_folds::multi_char_folds(1)
870 */
871 /*** GENERATED CODE ***/
872 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
873 ( ( 0x86 == ((const U8*)s)[1] ) ?                                           \
874             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
875         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
876
877
878 /*** GENERATED CODE ***/
879 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
880 ( ( 0x88 == ((const U8*)s)[0] ) ?                                           \
881         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
882     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
883         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
884     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
885         ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
886     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
887         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
888     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
889         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
890     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
891         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
892     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
893         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
894     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
895         ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
896     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
897         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
898             ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
899         : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
900             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
901                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
902                     ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
903                 : 0 )                                                       \
904             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
905         : ( 0x68 == ((const U8*)s)[1] ) ?                                   \
906             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
907                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
908                     ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
909                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
910                     : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
911                 : 0 )                                                       \
912             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
913         : 0 )                                                               \
914     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
915         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
916             ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
917         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
918             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
919                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
920                     ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
921                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
922                     : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
923                 : ( 0x62 == ((const U8*)s)[3] ) ?                           \
924                     ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
925                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 4 )\
926                     : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
927                 : 0 )                                                       \
928             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
929         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
930             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
931                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
932                     ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
933                 : 0 )                                                       \
934             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
935         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
936     : ( 0xB8 == ((const U8*)s)[0] ) ?                                       \
937         ( ( 0x52 == ((const U8*)s)[1] ) ?                                   \
938             ( ( 0x46 == ((const U8*)s)[2] ) ?                               \
939                 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
940             : ( 0x63 == ((const U8*)s)[2] ) ?                               \
941                 ( ( ( ( 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 )\
942             : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
943         : 0 )                                                               \
944     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
945         ( ( 0x67 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ?      \
946             ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
947         : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 )\
948     : 0 )
949
950
951 /*** GENERATED CODE ***/
952 #define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e)                             \
953 ( ( 0x81 == ((const U8*)s)[0] ) ?                                           \
954         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
955     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
956         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
957             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
958         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
959     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
960         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
961     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
962         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
963     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
964         ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
965     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
966         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
967     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
968         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
969     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
970         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
971     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
972         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
973     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
974         ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
975     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
976         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
977             ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
978         : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
979             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
980                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
981             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
982         : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
983     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
984         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
985             ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
986         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
987             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
988                 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
989             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
990         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
991             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
992                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
993             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
994         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
995     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
996         ( ( 0x67 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ?      \
997             ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
998         : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 )\
999     : 0 )
1000
1001
1002 /*** GENERATED CODE ***/
1003 #define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e)                             \
1004 ( ((e)-(s) > 3) ?                                                           \
1005     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1006         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1007     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1008         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1009             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1010         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1011     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1012         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1013     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1014         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1015     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
1016         ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1017     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1018         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1019     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1020         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1021     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1022         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1023     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1024         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1025     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
1026         ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1027     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1028         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1029             ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1030         : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
1031             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
1032                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1033             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1034         : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1035     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
1036         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1037             ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1038         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1039             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1040                 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1041             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1042         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1043             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
1044                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1045             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1046         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1047     : 0 )                                                                   \
1048 : ((e)-(s) > 2) ?                                                           \
1049     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1050         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1051     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1052         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1053             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1054         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1055     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1056         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1057     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1058         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1059     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1060         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1061     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1062         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1063     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1064         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1065     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1066         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1067     : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1068 : ((e)-(s) > 1) ?                                                           \
1069     ( ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1070         ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1071     : ( ( 0xA2 == ((const U8*)s)[0] ) && ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
1072 : 0 )
1073
1074
1075 /*** GENERATED CODE ***/
1076 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
1077 ( ((e)-(s) > 5) ?                                                           \
1078     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1079         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1080     : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
1081 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
1082
1083 /*
1084         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1085
1086         &regcharclass_multi_char_folds::multi_char_folds(0)
1087 */
1088 /*** GENERATED CODE ***/
1089 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
1090 ( ((e)-(s) > 2) ?                                                           \
1091     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1092         ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ?                        \
1093             ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1094         : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1095     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1096 : ((e)-(s) > 1) ?                                                           \
1097     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1098         ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1099     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1100 : 0 )
1101
1102 /*
1103         FOLDS_TO_MULTI: characters that fold to multi-char strings
1104
1105         \p{_Perl_Folds_To_Multi_Char}
1106 */
1107 /*** GENERATED CODE ***/
1108 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
1109 ( ( 0x8A == ((const U8*)s)[0] ) ?                                           \
1110     ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1111 : ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] || ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ) ?\
1112     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1113 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1114     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1115 : ( 0xB8 == ((const U8*)s)[0] ) ?                                           \
1116     ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1117 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1118     ( ( 0x63 == ((const U8*)s)[1] ) ?                                       \
1119         ( ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )\
1120     : ( 0x69 == ((const U8*)s)[1] ) ?                                       \
1121         ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x65 == ((const U8*)s)[2] ) ? 3 : 0 )\
1122     : ( 0x70 == ((const U8*)s)[1] ) ?                                       \
1123         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
1124     : ( 0x71 == ((const U8*)s)[1] ) ?                                       \
1125         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) || 0x59 == ((const U8*)s)[2] || ( ((const U8*)s)[2] & 0xFE ) == 0x62 || ( 0x65 == ((const U8*)s)[2] || 0x66 == ((const U8*)s)[2] ) || 0x70 == ((const U8*)s)[2] ) ? 3 : 0 )\
1126     : ( 0x72 == ((const U8*)s)[1] ) ?                                       \
1127         ( ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xFE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x53 || ((const U8*)s)[2] == 0x59 || ( ( ((const U8*)s)[2] & 0xFB ) == 0x62 ) || ((const U8*)s)[2] == 0x65 ) ? 3 : 0 )\
1128     : ( ( 0x73 == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xFE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x59 || ( ( ((const U8*)s)[2] & 0xFE ) == 0x62 ) || ((const U8*)s)[2] == 0x65 || ((const U8*)s)[2] == 0x66 || ((const U8*)s)[2] == 0x70 ) ) ? 3 : 0 )\
1129 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )
1130
1131 /*
1132         PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1133
1134         \p{_Perl_Problematic_Locale_Folds}
1135 */
1136 /*** GENERATED CODE ***/
1137 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
1138 ( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
1139 : ( 0x80 == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0x8A ) ?   \
1140     ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
1141 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1142     ( ( 0x57 == ((const U8*)s)[1] || 0x58 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1143 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1144     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1145 : ( 0x8F == ((const U8*)s)[0] ) ?                                           \
1146     ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1147 : ( 0x9C == ((const U8*)s)[0] ) ?                                           \
1148     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1149 : ( 0xAF == ((const U8*)s)[0] ) ?                                           \
1150     ( ( 0x48 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1151 : ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ?              \
1152     ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1153 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1154     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1155 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1156     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1157 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
1158
1159 /*** GENERATED CODE ***/
1160 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
1161 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1162 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1163 ( 0x131 == cp || ( 0x131 < cp &&                                            \
1164 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1165 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1166 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1167 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1168 ( 0x307 == cp || ( 0x307 < cp &&                                            \
1169 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1170 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1171 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
1172 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1173 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1174 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1175
1176 /*
1177         PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1178
1179         \p{_Perl_Problematic_Locale_Foldeds_Start}
1180 */
1181 /*** GENERATED CODE ***/
1182 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
1183 ( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
1184 : ( 0x80 == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0x8A ) ?   \
1185     ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
1186 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1187     ( ( 0x57 == ((const U8*)s)[1] || 0x58 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1188 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1189     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1190 : ( 0x8F == ((const U8*)s)[0] ) ?                                           \
1191     ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1192 : ( 0x9C == ((const U8*)s)[0] ) ?                                           \
1193     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1194 : ( 0xAB == ((const U8*)s)[0] || ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ) ?\
1195     ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1196 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1197     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1198 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1199     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1200 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
1201
1202 /*** GENERATED CODE ***/
1203 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
1204 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1205 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1206 ( 0x131 == cp || ( 0x131 < cp &&                                            \
1207 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1208 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1209 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1210 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1211 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
1212 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1213 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1214 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
1215 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1216 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1217 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1218
1219 /*
1220         PATWS: pattern white space
1221
1222         \p{_Perl_PatWS}
1223 */
1224 /*** GENERATED CODE ***/
1225 #define is_PATWS_safe(s,e,is_utf8)                                          \
1226 ( ( LIKELY((e) > (s)) ) ?                                                   \
1227     ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x05 ) || ((const U8*)s)[0] == 0x0B || ( ( ((const U8*)s)[0] & 0xFE ) == 0x0C ) || ((const U8*)s)[0] == 0x25 || ((const U8*)s)[0] == 0x40 ) ? 1\
1228     : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
1229                     ( ( 0x55 == ((const U8*)s)[2] || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1230                 : ( ( 0x42 == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
1231 : 0 )
1232
1233 /*** GENERATED CODE ***/
1234 #define is_PATWS_cp(cp)                                                     \
1235 ( 0x05 == cp || ( 0x05 < cp &&                                              \
1236 ( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
1237 ( 0x15 == cp || ( 0x15 < cp &&                                              \
1238 ( 0x25 == cp || ( 0x25 < cp &&                                              \
1239 ( 0x40 == cp || ( 0x40 < cp &&                                              \
1240 ( 0x200E == cp || ( 0x200E < cp &&                                          \
1241 ( 0x200F == cp || ( 0x200F < cp &&                                          \
1242 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1243
1244 #endif  /* EBCDIC 1047 */
1245
1246 #if 'A' == 193 /* EBCDIC 037 */ \
1247      && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
1248      && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
1249      && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
1250 /*
1251         LNBREAK: Line Break: \R
1252
1253         "\x0D\x0A"      # CRLF - Network (Windows) line ending
1254         \p{VertSpace}
1255 */
1256 /*** GENERATED CODE ***/
1257 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
1258 ( ((e)-(s) > 2) ?                                                           \
1259     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1260     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1261         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1262     : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1263 : ((e)-(s) > 1) ?                                                           \
1264     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1265     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1266         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1267     : 0 )                                                                   \
1268 : ((e)-(s) > 0) ?                                                           \
1269     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1270 : 0 )
1271
1272 /*** GENERATED CODE ***/
1273 #define is_LNBREAK_utf8_safe(s,e)                                           \
1274 ( ((e)-(s) > 2) ?                                                           \
1275     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1276     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1277         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1278     : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1279 : ((e)-(s) > 1) ?                                                           \
1280     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1281     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1282         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1283     : 0 )                                                                   \
1284 : ((e)-(s) > 0) ?                                                           \
1285     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1286 : 0 )
1287
1288 /*** GENERATED CODE ***/
1289 #define is_LNBREAK_latin1_safe(s,e)                                         \
1290 ( ((e)-(s) > 1) ?                                                           \
1291     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1292     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1293         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1294     : 0 )                                                                   \
1295 : ((e)-(s) > 0) ?                                                           \
1296     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1297 : 0 )
1298
1299 /*
1300         HORIZWS: Horizontal Whitespace: \h \H
1301
1302         \p{HorizSpace}
1303 */
1304 /*** GENERATED CODE ***/
1305 #define is_HORIZWS_high(s)                                                  \
1306 ( ( 0xBD == ((const U8*)s)[0] ) ?                                           \
1307     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1308 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1309     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
1310         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
1311     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1312         ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
1313     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1314 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1315
1316 /*** GENERATED CODE ***/
1317 #define is_HORIZWS_cp_high(cp)                                              \
1318 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
1319 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
1320 ( 0x202F == cp || ( 0x202F < cp &&                                          \
1321 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
1322
1323 /*
1324         VERTWS: Vertical Whitespace: \v \V
1325
1326         \p{VertSpace}
1327 */
1328 /*** GENERATED CODE ***/
1329 #define is_VERTWS_high(s)                                                   \
1330 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )
1331
1332 /*** GENERATED CODE ***/
1333 #define is_VERTWS_cp_high(cp)                                               \
1334 ( 0x2028 == cp || 0x2029 == cp )
1335
1336 /*
1337         XDIGIT: Hexadecimal digits
1338
1339         \p{XDigit}
1340 */
1341 /*** GENERATED CODE ***/
1342 #define is_XDIGIT_high(s)                                                   \
1343 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\
1344             ( ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0x57 ) || ( ( ((const U8*)s)[3] & 0xFE ) == 0x58 ) || ( ( ((const U8*)s)[3] & 0xFE ) == 0x62 ) || ( ( ((const U8*)s)[3] & 0xFC ) == 0x64 ) ) ? 4 : 0 )\
1345         : ( ( 0x67 == ((const U8*)s)[2] || 0x68 == ((const U8*)s)[2] ) && ( 0x42 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
1346
1347 /*** GENERATED CODE ***/
1348 #define is_XDIGIT_cp_high(cp)                                               \
1349 ( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
1350 ( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
1351
1352 /*
1353         XPERLSPACE: \p{XPerlSpace}
1354
1355         \p{XPerlSpace}
1356 */
1357 /*** GENERATED CODE ***/
1358 #define is_XPERLSPACE_high(s)                                               \
1359 ( ( 0xBD == ((const U8*)s)[0] ) ?                                           \
1360     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1361 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1362     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
1363         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
1364     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1365         ( ( ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1366     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1367 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1368
1369 /*** GENERATED CODE ***/
1370 #define is_XPERLSPACE_cp_high(cp)                                           \
1371 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
1372 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
1373 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
1374 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
1375 ( 0x202F == cp || ( 0x202F < cp &&                                          \
1376 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
1377
1378 /*
1379         NONCHAR: Non character code points
1380
1381         \p{_Perl_Nchar}
1382 */
1383 /*** GENERATED CODE ***/
1384 #define is_NONCHAR_utf8_safe(s,e)                                           \
1385 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
1386             ( ( 0x72 == ((const U8*)s)[1] ) ?                               \
1387                 ( ( 0x55 == ((const U8*)s)[2] ) ?                           \
1388                     ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
1389                 : ( 0x56 == ((const U8*)s)[2] ) ?                           \
1390                     ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
1391                 : ( ( 0x72 == ((const U8*)s)[2] ) && ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1392             : 0 )                                                           \
1393         : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
1394             ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1395         : ( 0xED == ((const U8*)s)[0] ) ?                                   \
1396             ( ( ( ( ( ((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] ) ) && ( 0x71 == ((const U8*)s)[4] || 0x72 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1397         : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( 0x71 == ((const U8*)s)[4] || 0x72 == ((const U8*)s)[4] ) ) ? 5 : 0 ) : 0 )
1398
1399 /*
1400         SURROGATE: Surrogate code points
1401
1402         \p{_Perl_Surrogate}
1403 */
1404 /*** GENERATED CODE ***/
1405 #define is_SURROGATE_utf8_safe(s,e)                                         \
1406 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( ( ((const U8*)s)[1] & 0xFE ) == 0x64 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
1407
1408 /*
1409         QUOTEMETA: Meta-characters that \Q should quote
1410
1411         \p{_Perl_Quotemeta}
1412 */
1413 /*** GENERATED CODE ***/
1414 #define is_QUOTEMETA_high_part0(s)                                          \
1415 ( ( 0x41 == ((const U8*)s)[1] || ( 0x54 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ?\
1416         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1417     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1418         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFE ) == 0x70 ) ? 3 : 0 )\
1419     : ( 0x43 == ((const U8*)s)[1] ) ?                                       \
1420         ( ( ( 0x42 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x63 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1421     : ( 0x44 == ((const U8*)s)[1] ) ?                                       \
1422         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
1423     : ( ( 0x53 == ((const U8*)s)[1] ) && ( ( 0x57 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )
1424
1425
1426 /*** GENERATED CODE ***/
1427 #define is_QUOTEMETA_high_part1(s)                                          \
1428 ( ( 0xCB == ((const U8*)s)[0] ) ?                                           \
1429     ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x43 ) || ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x68 ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ?\
1430         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1431     : ( 0x69 == ((const U8*)s)[1] ) ?                                       \
1432         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( ((const U8*)s)[2] & 0xFE ) == 0x62 ) ? 3 : 0 )\
1433     : ( ( 0x6A == ((const U8*)s)[1] ) && ( ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1434 : ( 0xCC == ((const U8*)s)[0] ) ?                                           \
1435     ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1436 : ( 0xCD == ((const U8*)s)[0] ) ?                                           \
1437     ( ( ( ( ( ((const U8*)s)[1] & 0xF7 ) == 0x57 ) || ( ( ((const U8*)s)[1] & 0xFE ) == 0x58 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1438 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
1439     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
1440         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) || ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1441     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1442         ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
1443     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1444 : ( 0xDD == ((const U8*)s)[0] ) ?                                           \
1445     ( ( 0x72 == ((const U8*)s)[1] ) ?                                       \
1446         ( ( 0x4A == ((const U8*)s)[2] ) ?                                   \
1447             ( ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ? 4 : 0 )\
1448         : ( 0x57 == ((const U8*)s)[2] ) ?                                   \
1449             ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
1450         : ( 0x59 == ((const U8*)s)[2] ) ?                                   \
1451             ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 )            \
1452         : ( 0x65 == ((const U8*)s)[2] ) ?                                   \
1453             ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
1454         : ( 0x70 == ((const U8*)s)[2] ) ?                                   \
1455             ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
1456         : ( ( 0x72 == ((const U8*)s)[2] ) && ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )\
1457     : 0 )                                                                   \
1458 : ( 0xDF == ((const U8*)s)[0] ) ?                                           \
1459     ( ( 0x56 == ((const U8*)s)[1] ) ?                                       \
1460         ( ( ( 0x46 == ((const U8*)s)[2] ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
1461     : ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x68 ) ) ) ? 4 : 0 )\
1462 : ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )
1463
1464
1465 /*** GENERATED CODE ***/
1466 #define is_QUOTEMETA_high(s)                                                \
1467 ( ( 0xAF == ((const U8*)s)[0] ) ?                                           \
1468     ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1469 : ( 0xB7 == ((const U8*)s)[0] ) ?                                           \
1470     ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1471 : ( 0xBC == ((const U8*)s)[0] ) ?                                           \
1472     ( ( 0x51 == ((const U8*)s)[1] ) ?                                       \
1473         ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
1474     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1475 : ( 0xBD == ((const U8*)s)[0] ) ?                                           \
1476     ( ( 0x62 == ((const U8*)s)[1] ) ?                                       \
1477         ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
1478     : ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0x62 ) ) ? 3 : 0 )\
1479 : ( 0xBE == ((const U8*)s)[0] ) ?                                           \
1480     ( ( ( 0x41 == ((const U8*)s)[1] ) && ( 0x52 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
1481 : ( 0xCA == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
1482
1483 /*
1484         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1485
1486         &regcharclass_multi_char_folds::multi_char_folds(1)
1487 */
1488 /*** GENERATED CODE ***/
1489 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
1490 ( ( 0x86 == ((const U8*)s)[1] ) ?                                           \
1491             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1492         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
1493
1494
1495 /*** GENERATED CODE ***/
1496 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
1497 ( ( 0x88 == ((const U8*)s)[0] ) ?                                           \
1498         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1499     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1500         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1501     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
1502         ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1503     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1504         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1505     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1506         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1507     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1508         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1509     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1510         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1511     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
1512         ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1513     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
1514         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1515             ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1516         : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
1517             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1518                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
1519                     ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1520                 : 0 )                                                       \
1521             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1522         : ( 0x67 == ((const U8*)s)[1] ) ?                                   \
1523             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1524                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
1525                     ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
1526                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
1527                     : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1528                 : 0 )                                                       \
1529             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1530         : 0 )                                                               \
1531     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1532         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1533             ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1534         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1535             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1536                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
1537                     ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
1538                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
1539                     : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1540                 : ( 0x5F == ((const U8*)s)[3] ) ?                           \
1541                     ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
1542                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 4 )\
1543                     : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1544                 : 0 )                                                       \
1545             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1546         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1547             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1548                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
1549                     ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1550                 : 0 )                                                       \
1551             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1552         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1553     : ( 0xB7 == ((const U8*)s)[0] ) ?                                       \
1554         ( ( 0x52 == ((const U8*)s)[1] ) ?                                   \
1555             ( ( 0x46 == ((const U8*)s)[2] ) ?                               \
1556                 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1557             : ( 0x62 == ((const U8*)s)[2] ) ?                               \
1558                 ( ( ( ( 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 )\
1559             : ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1560         : 0 )                                                               \
1561     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
1562         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0x66 ) ?                        \
1563             ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1564         : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 )\
1565     : 0 )
1566
1567
1568 /*** GENERATED CODE ***/
1569 #define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e)                             \
1570 ( ( 0x81 == ((const U8*)s)[0] ) ?                                           \
1571         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1572     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1573         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1574             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1575         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1576     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1577         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1578     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1579         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1580     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
1581         ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1582     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1583         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1584     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1585         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1586     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1587         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1588     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1589         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1590     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
1591         ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1592     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
1593         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1594             ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1595         : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
1596             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1597                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1598             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1599         : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1600     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1601         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1602             ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1603         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1604             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1605                 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1606             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1607         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1608             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1609                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1610             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1611         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1612     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
1613         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0x66 ) ?                        \
1614             ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1615         : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 )\
1616     : 0 )
1617
1618
1619 /*** GENERATED CODE ***/
1620 #define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e)                             \
1621 ( ((e)-(s) > 3) ?                                                           \
1622     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1623         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1624     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1625         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1626             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1627         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1628     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1629         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1630     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1631         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1632     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
1633         ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1634     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1635         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1636     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1637         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1638     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1639         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1640     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1641         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1642     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
1643         ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1644     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
1645         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1646             ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1647         : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
1648             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1649                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1650             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1651         : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1652     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1653         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1654             ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1655         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1656             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1657                 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1658             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1659         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1660             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1661                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1662             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1663         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1664     : 0 )                                                                   \
1665 : ((e)-(s) > 2) ?                                                           \
1666     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1667         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1668     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1669         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1670             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1671         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1672     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1673         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1674     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1675         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1676     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1677         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1678     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1679         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1680     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1681         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1682     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1683         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1684     : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1685 : ((e)-(s) > 1) ?                                                           \
1686     ( ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1687         ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1688     : ( ( 0xA2 == ((const U8*)s)[0] ) && ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
1689 : 0 )
1690
1691
1692 /*** GENERATED CODE ***/
1693 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
1694 ( ((e)-(s) > 5) ?                                                           \
1695     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1696         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1697     : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
1698 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
1699
1700 /*
1701         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1702
1703         &regcharclass_multi_char_folds::multi_char_folds(0)
1704 */
1705 /*** GENERATED CODE ***/
1706 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
1707 ( ((e)-(s) > 2) ?                                                           \
1708     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1709         ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ?                        \
1710             ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1711         : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1712     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1713 : ((e)-(s) > 1) ?                                                           \
1714     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1715         ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1716     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1717 : 0 )
1718
1719 /*
1720         FOLDS_TO_MULTI: characters that fold to multi-char strings
1721
1722         \p{_Perl_Folds_To_Multi_Char}
1723 */
1724 /*** GENERATED CODE ***/
1725 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
1726 ( ( 0x80 == ((const U8*)s)[0] ) ?                                           \
1727     ( ( 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1728 : ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ?\
1729     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1730 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1731     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1732 : ( 0xB7 == ((const U8*)s)[0] ) ?                                           \
1733     ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1734 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1735     ( ( 0x62 == ((const U8*)s)[1] ) ?                                       \
1736         ( ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ? 3 : 0 )\
1737     : ( 0x68 == ((const U8*)s)[1] ) ?                                       \
1738         ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ? 3 : 0 )\
1739     : ( 0x6A == ((const U8*)s)[1] ) ?                                       \
1740         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1741     : ( 0x70 == ((const U8*)s)[1] ) ?                                       \
1742         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) || 0x59 == ((const U8*)s)[2] || 0x5F == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || ( ((const U8*)s)[2] & 0xFE ) == 0x64 || 0x6A == ((const U8*)s)[2] ) ? 3 : 0 )\
1743     : ( 0x71 == ((const U8*)s)[1] ) ?                                       \
1744         ( ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xDE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x53 || ((const U8*)s)[2] == 0x59 || ((const U8*)s)[2] == 0x5F ) ? 3 : 0 )\
1745     : ( ( 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 )\
1746 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x65 ) ) ) ? 4 : 0 )
1747
1748 /*
1749         PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1750
1751         \p{_Perl_Problematic_Locale_Folds}
1752 */
1753 /*** GENERATED CODE ***/
1754 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
1755 ( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x5C ) || ((const U8*)s)[0] == 0x5E || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x6C ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ((const U8*)s)[0] == 0xB0 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
1756 : ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
1757     ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
1758 : ( 0x8C == ((const U8*)s)[0] ) ?                                           \
1759     ( ( 0x57 == ((const U8*)s)[1] || 0x58 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1760 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1761     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1762 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1763     ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1764 : ( 0x9B == ((const U8*)s)[0] ) ?                                           \
1765     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1766 : ( 0xAD == ((const U8*)s)[0] ) ?                                           \
1767     ( ( 0x48 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1768 : ( ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ?                                \
1769     ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1770 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1771     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1772 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1773     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1774 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
1775
1776 /*** GENERATED CODE ***/
1777 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
1778 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1779 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1780 ( 0x131 == cp || ( 0x131 < cp &&                                            \
1781 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1782 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1783 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1784 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1785 ( 0x307 == cp || ( 0x307 < cp &&                                            \
1786 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1787 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1788 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
1789 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1790 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1791 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1792
1793 /*
1794         PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1795
1796         \p{_Perl_Problematic_Locale_Foldeds_Start}
1797 */
1798 /*** GENERATED CODE ***/
1799 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
1800 ( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x5C ) || ((const U8*)s)[0] == 0x5E || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x6C ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ((const U8*)s)[0] == 0xB0 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
1801 : ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
1802     ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
1803 : ( 0x8C == ((const U8*)s)[0] ) ?                                           \
1804     ( ( 0x57 == ((const U8*)s)[1] || 0x58 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1805 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1806     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1807 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1808     ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1809 : ( 0x9B == ((const U8*)s)[0] ) ?                                           \
1810     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1811 : ( 0xAA == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ?   \
1812     ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1813 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1814     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1815 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1816     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1817 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
1818
1819 /*** GENERATED CODE ***/
1820 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
1821 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1822 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1823 ( 0x131 == cp || ( 0x131 < cp &&                                            \
1824 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1825 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1826 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1827 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1828 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
1829 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1830 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1831 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
1832 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1833 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1834 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1835
1836 /*
1837         PATWS: pattern white space
1838
1839         \p{_Perl_PatWS}
1840 */
1841 /*** GENERATED CODE ***/
1842 #define is_PATWS_safe(s,e,is_utf8)                                          \
1843 ( ( LIKELY((e) > (s)) ) ?                                                   \
1844     ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x05 ) || ((const U8*)s)[0] == 0x0B || ( ( ((const U8*)s)[0] & 0xFE ) == 0x0C ) || ((const U8*)s)[0] == 0x25 || ((const U8*)s)[0] == 0x40 ) ? 1\
1845     : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
1846                     ( ( 0x55 == ((const U8*)s)[2] || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1847                 : ( ( 0x42 == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
1848 : 0 )
1849
1850 /*** GENERATED CODE ***/
1851 #define is_PATWS_cp(cp)                                                     \
1852 ( 0x05 == cp || ( 0x05 < cp &&                                              \
1853 ( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
1854 ( 0x15 == cp || ( 0x15 < cp &&                                              \
1855 ( 0x25 == cp || ( 0x25 < cp &&                                              \
1856 ( 0x40 == cp || ( 0x40 < cp &&                                              \
1857 ( 0x200E == cp || ( 0x200E < cp &&                                          \
1858 ( 0x200F == cp || ( 0x200F < cp &&                                          \
1859 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1860
1861 #endif  /* EBCDIC 037 */
1862
1863 #endif /* PERL_REGCHARCLASS_H_ */
1864
1865 /* Generated from:
1866  * d34c77b7e7a94986cc82056919f4ffc1503b73091561e16bd8ef145ac0fd04c5 lib/Unicode/UCD.pm
1867  * fdc543859433c4578ec7991d8c3238a3638d59962eb0db446d0228cccb7a48da lib/unicore/ArabicShaping.txt
1868  * 530831b8bdbb2a8a6bc1f2eef88224991513c7371c16537d0a7e09386a2cd326 lib/unicore/BidiBrackets.txt
1869  * f07f44839398bc33792d988f14fcbcaf382abc3b79119e7e0bb083104260b890 lib/unicore/BidiMirroring.txt
1870  * a1a3ca4381eb91f7b65afe7cb7df615cdcf67993fef4b486585f66b349993a10 lib/unicore/Blocks.txt
1871  * d6caa458afc9a76d86bc2ef26a5423f4e663981904de450c97dd53ee0ab5c125 lib/unicore/CaseFolding.txt
1872  * 08a52bd7f893f5c9a34a6d4cc3a0b2d7a44293ee45fb15d581e729b9f8584dfa lib/unicore/CompositionExclusions.txt
1873  * 269ff9d35cbe3cb05dfadb262a6d9d89d7ad43ac6ecd7ec71f47ec036e174912 lib/unicore/DAge.txt
1874  * b559c5ac28549ec48b9f6f14d189b503d35e33158db6b5f63e6103f51aded2cd lib/unicore/DCoreProperties.txt
1875  * 8b4210273920c013e736332434222b73786e6c468a360710f6799eeace9b3d38 lib/unicore/DNormalizationProps.txt
1876  * f7e61d7cd168d4496c6019148579af3adfd6e0dac8fa7cd98d8617bcd8732b28 lib/unicore/EastAsianWidth.txt
1877  * cb048696ab01434bac59c30e5cb1f682d95022c972d8d1ebd5ea79b3841ba66c lib/unicore/EmojiData.txt
1878  * af2928fa86e77dc2d91ed268270ca13895ede2bf29e9f0f7533f1873c0aeb4b5 lib/unicore/EquivalentUnifiedIdeograph.txt
1879  * 2791813c07488ad72b3943bbcb2eb85bb03222271829c13bf25f79edfb214330 lib/unicore/HangulSyllableType.txt
1880  * 1df3666ef987e492b4323a9cd907738e41656e6428752f4b1f6fd95f9bfc8adb lib/unicore/IndicPositionalCategory.txt
1881  * b3932cf25d7ea43e1bf6be6d45094d4552f753f6b651a7a869464028f1aa88a1 lib/unicore/IndicSyllabicCategory.txt
1882  * 035d78d5e1fb60c3b44fb7049a96c660a6d045be27ac8f4425abfbc3733724de lib/unicore/Jamo.txt
1883  * 5afea13d57e5b11c761a9b2553806b12a5fe4e96b729398d9bf0dd94b7e6d7eb lib/unicore/LineBreak.txt
1884  * 46cce9be0639999e6a903bfa9f1313def3c361c7ae68f411cef244132ee8097b lib/unicore/NameAliases.txt
1885  * 0911bfd49367059219a74c69fb2c1440d256869e713619a2a231afd24357ec6e lib/unicore/NamedSequences.txt
1886  * adf1323156ef56014549698eab7b482a3682c8e02c251a7c19f68e427b391189 lib/unicore/PropList.txt
1887  * 648e1cb9942f02b9358edc52d523803efa491ff576aa7063d4b9aebdef7d7217 lib/unicore/PropValueAliases.txt
1888  * 402e075e4b9d56bf46d32c950d693e5bb52c1a324a652f732401dbf5a9a4d269 lib/unicore/PropertyAliases.txt
1889  * b77739d4b7c35069c10f8e156b71c88c5955800240c22e3a32b2ed3ea9620e5f lib/unicore/ScriptExtensions.txt
1890  * bd327cbb8bffd2e4b40b1e9842c9a7d641d1c4e91c34a41020cf174f3a1c86a1 lib/unicore/Scripts.txt
1891  * 22b1bff498f08633f72468d46eebb65e30dc325fbb6822dde319cb605af014c2 lib/unicore/SpecialCasing.txt
1892  * 57913fdb1c1271fa9fd51dea08d49370f33d5bfda6bbaba348f44d90029ea11d lib/unicore/UnicodeData.txt
1893  * 36900e28ff01fa810d8a7e0848e1075289975188525f2c1d14487d561bbf595a lib/unicore/VerticalOrientation.txt
1894  * 238635e1dfcc190345ffbcab734f7017dea05d2a66f2291745c11067893689a7 lib/unicore/auxiliary/GCBTest.txt
1895  * b49f36b98cdd4c996fc7971b8b4d25e3c13b45f0a71f4ad0c5e70a9cebe0b956 lib/unicore/auxiliary/GraphemeBreakProperty.txt
1896  * d7ae54c2704f27b3a8f40ae934c2f6f3ee87bec20a865e0f9689bc1cd3f92335 lib/unicore/auxiliary/LBTest.txt
1897  * a9fafe0badc760379957a282bbe3d82d5a6ba113911b89501781fd6b6ad66377 lib/unicore/auxiliary/SBTest.txt
1898  * 5bf7faf5898403b6adad2d94f1a9ddf26de650cc7a8f2ee00590f05bbea9bd03 lib/unicore/auxiliary/SentenceBreakProperty.txt
1899  * 12e02e6158929ae29c9b47f76ab95d68194b1d0c295d7b4f6df31487590222a5 lib/unicore/auxiliary/WBTest.txt
1900  * 9be679d9772dc4842697a3a5b6e1845022f876c1f230ecea38f1be5d6d5673d8 lib/unicore/auxiliary/WordBreakProperty.txt
1901  * 9e6955b173a13a8a91e3c1b468c9d7e122c588aa288f707bfcef35790a828f8a lib/unicore/extracted/DBidiClass.txt
1902  * 80e94d5bb24639c9f322bd3b4b8159a8e9a7c33ac45076eff9cd3ecb0b9b812e lib/unicore/extracted/DBinaryProperties.txt
1903  * 6dc031734cd287af8b33c99435d41f6c836e8e08a7a6cb6cb07e8453cbebdb3b lib/unicore/extracted/DCombiningClass.txt
1904  * b143bb87f041dcb69335806cb0a1a6b2328eb25cdfa04fe6fcd4c77c6a06fe82 lib/unicore/extracted/DDecompositionType.txt
1905  * f63f08d36d01eb45f34ff8d2b36681252211f92db690fa1258a399a9a86df3bb lib/unicore/extracted/DEastAsianWidth.txt
1906  * 6fa015f11f19a9407d590827276f9884c1ee4c71fbc826a09008f7d9d7c1b255 lib/unicore/extracted/DGeneralCategory.txt
1907  * 1b24a2d586a8b91c0768d4da8919634463bdf126b7479a8e76b85d007cbef8a0 lib/unicore/extracted/DJoinGroup.txt
1908  * 8095565a527d3d0918a17e30a7bcc0c7864ac3ad748defc21027b3e1ad436368 lib/unicore/extracted/DJoinType.txt
1909  * 5f98a68d5aa76b06052fe16312d2fdf17547fd69c4e648532845e11beaf2002b lib/unicore/extracted/DLineBreak.txt
1910  * 8011b1733f6d2cc17576b2a1e20067eca51205e8e0b740d00ebd52afbec2ea39 lib/unicore/extracted/DNumType.txt
1911  * 8b677a4cf17a4c6949632146fa8a99aaa65689a41b9dd231f81783e81600ff36 lib/unicore/extracted/DNumValues.txt
1912  * 56461f8238f671a5e686ca8cacd508e67d6d0b7a14ac6096938af435f76d36e0 lib/unicore/mktables
1913  * 93cc868487ef3345596041bcb90c302b1b056733bb95233101bc10dc2dbe36b4 lib/unicore/version
1914  * 2680b9254eb236c5c090f11b149605043e8c8433661b96efc4a42fb4709342a5 regen/charset_translations.pl
1915  * 88bd981dbb45f57767c414170f85067c6e01b5afbc1e40c6514a2bc41ed8c1d8 regen/regcharclass.pl
1916  * c6b0b0b7e4ac4f5a57d203e84194749987477ea55b2366e3b343aadf8cc7d6b5 regen/regcharclass_multi_char_folds.pl
1917  * ex: set ro: */