This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
minor fixups to new op_sibling work
[perl5.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 H_REGCHARCLASS   /* Guard against nested #includes */
19 #define H_REGCHARCLASS 1
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 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
32     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
33         ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
34     : ( is_utf8 ) ?                                                         \
35         ( ( 0xC2 == ((U8*)s)[0] ) ?                                         \
36             ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                             \
37         : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
38     : ( 0x85 == ((U8*)s)[0] ) )                                             \
39 : ((e)-(s) > 1) ?                                                           \
40     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
41     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
42         ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
43     : ( is_utf8 ) ?                                                         \
44         ( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 )  \
45     : ( 0x85 == ((U8*)s)[0] ) )                                             \
46 : ((e)-(s) > 0) ?                                                           \
47     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
48     : ( !( is_utf8 ) ) ?                                                    \
49         ( 0x85 == ((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 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
57     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
58         ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
59     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
60         ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
61     : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
62 : ((e)-(s) > 1) ?                                                           \
63     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
64     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
65         ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
66     : ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 )      \
67 : ((e)-(s) > 0) ?                                                           \
68     ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D )                          \
69 : 0 )
70
71 /*** GENERATED CODE ***/
72 #define is_LNBREAK_latin1_safe(s,e)                                         \
73 ( ((e)-(s) > 1) ?                                                           \
74     ( ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) || 0x85 == ((U8*)s)[0] ) ? 1\
75     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
76         ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
77     : 0 )                                                                   \
78 : ((e)-(s) > 0) ?                                                           \
79     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((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 == ((U8*)s)[0] ) ?                                                 \
90     ( ( ( 0x9A == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
91 : ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
92     ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
93         ( ( ( ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )      \
94     : ( ( 0x81 == ((U8*)s)[1] ) && ( 0x9F == ((U8*)s)[2] ) ) ? 3 : 0 )      \
95 : ( ( ( 0xE3 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( 0x80 == ((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 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((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 == ((U8*)s)[0] ) ?                                                 \
125     ( ( 0xBC == ((U8*)s)[1] ) ?                                             \
126         ( ( ( 0x90 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x99 ) || ( 0xA1 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xA6 ) ) ? 3 : 0 )\
127     : ( ( 0xBD == ((U8*)s)[1] ) && ( 0x81 <= ((U8*)s)[2] && ((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 == ((U8*)s)[0] ) ?                                                 \
143     ( ( ( 0x9A == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
144 : ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
145     ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
146         ( ( ( ((U8*)s)[2] <= 0x8A ) || ( ((U8*)s)[2] & 0xFE ) == 0xA8 || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
147     : ( ( 0x81 == ((U8*)s)[1] ) && ( 0x9F == ((U8*)s)[2] ) ) ? 3 : 0 )      \
148 : ( ( ( 0xE3 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( 0x80 == ((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         REPLACEMENT: Unicode REPLACEMENT CHARACTER
161
162         0xFFFD
163 */
164 /*** GENERATED CODE ***/
165 #define is_REPLACEMENT_utf8_safe(s,e)                                       \
166 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xEF == ((U8*)s)[0] ) ) && ( 0xBF == ((U8*)s)[1] ) ) && ( 0xBD == ((U8*)s)[2] ) ) ? 3 : 0 )
167
168 /*
169         NONCHAR: Non character code points
170
171         \p{Nchar}
172 */
173 /*** GENERATED CODE ***/
174 #define is_NONCHAR_utf8(s)                                                  \
175 ( ( 0xEF == ((U8*)s)[0] ) ?                                                 \
176     ( ( 0xB7 == ((U8*)s)[1] ) ?                                             \
177         ( ( 0x90 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xAF ) ? 3 : 0 )          \
178     : ( ( 0xBF == ((U8*)s)[1] ) && ( ((U8*)s)[2] >= 0xBE ) ) ? 3 : 0 )      \
179 : ( 0xF0 == ((U8*)s)[0] ) ?                                                 \
180     ( ( ( ( ((U8*)s)[1] == 0x9F || ( ( ((U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )\
181 : ( 0xF1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xF3 ) ?                          \
182     ( ( ( ( ( ((U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )\
183 : ( ( ( ( 0xF4 == ((U8*)s)[0] ) && ( 0x8F == ((U8*)s)[1] ) ) && ( 0xBF == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xBE ) ) ? 4 : 0 )
184
185 /*
186         SURROGATE: Surrogate characters
187
188         \p{Gc=Cs}
189 */
190 /*** GENERATED CODE ***/
191 #define is_SURROGATE_utf8(s)                                                \
192 ( ( ( 0xED == ((U8*)s)[0] ) && ( ((U8*)s)[1] >= 0xA0 ) ) ? 3 : 0 )
193
194 /*
195         GCB_L: Grapheme_Cluster_Break=L
196
197         \p{_X_GCB_L}
198 */
199 /*** GENERATED CODE ***/
200 #define is_GCB_L_utf8(s)                                                    \
201 ( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
202     ( ( 0x84 == ((U8*)s)[1] ) ?                                             \
203         3                                                                   \
204     : ( ( 0x85 == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0x9F ) ) ? 3 : 0 )      \
205 : ( ( ( 0xEA == ((U8*)s)[0] ) && ( 0xA5 == ((U8*)s)[1] ) ) && ( 0xA0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBC ) ) ? 3 : 0 )
206
207 /*
208         GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
209
210         \p{_X_LV_LVT_V}
211 */
212 /*** GENERATED CODE ***/
213 #define is_GCB_LV_LVT_V_utf8(s)                                             \
214 ( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
215     ( ( 0x85 == ((U8*)s)[1] ) ?                                             \
216         ( ( ((U8*)s)[2] >= 0xA0 ) ? 3 : 0 )                                 \
217     : ( ( 0x86 == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0xA7 ) ) ? 3 : 0 )      \
218 : ( 0xEA == ((U8*)s)[0] ) ?                                                 \
219     ( ( ((U8*)s)[1] >= 0xB0 ) ?                                             \
220         3                                                                   \
221     : 0 )                                                                   \
222 : ( 0xEB == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ?                          \
223     3                                                                       \
224 : ( 0xED == ((U8*)s)[0] ) ?                                                 \
225     ( ( ((U8*)s)[1] <= 0x9D ) ?                                             \
226         3                                                                   \
227     : ( 0x9E == ((U8*)s)[1] ) ?                                             \
228         ( ( ( ((U8*)s)[2] <= 0xA3 ) || ( ((U8*)s)[2] >= 0xB0 ) ) ? 3 : 0 )  \
229     : ( ( 0x9F == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )      \
230 : 0 )
231
232 /*
233         GCB_Prepend: Grapheme_Cluster_Break=Prepend
234
235         \p{_X_GCB_Prepend}
236 */
237 /*** GENERATED CODE ***/
238 #define is_GCB_Prepend_utf8(s)                                              \
239 ( 0 )
240
241 /*
242         GCB_RI: Grapheme_Cluster_Break=RI
243
244         \p{_X_RI}
245 */
246 /*** GENERATED CODE ***/
247 #define is_GCB_RI_utf8(s)                                                   \
248 ( ( ( ( ( 0xF0 == ((U8*)s)[0] ) && ( 0x9F == ((U8*)s)[1] ) ) && ( 0x87 == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xA6 ) ) ? 4 : 0 )
249
250 /*
251         GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
252
253         \p{_X_Special_Begin_Start}
254 */
255 /*** GENERATED CODE ***/
256 #define is_GCB_SPECIAL_BEGIN_START_utf8(s)                                  \
257 ( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
258     ( ( ( ((U8*)s)[1] & 0xFC ) == 0x84 ) ?                                  \
259         3                                                                   \
260     : 0 )                                                                   \
261 : ( 0xEA == ((U8*)s)[0] ) ?                                                 \
262     ( ( 0xA5 == ((U8*)s)[1] ) ?                                             \
263         ( ( 0xA0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBC ) ? 3 : 0 )          \
264     : ( ((U8*)s)[1] >= 0xB0 ) ?                                             \
265         3                                                                   \
266     : 0 )                                                                   \
267 : ( 0xEB == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ?                          \
268     3                                                                       \
269 : ( 0xED == ((U8*)s)[0] ) ?                                                 \
270     ( ( ((U8*)s)[1] <= 0x9D ) ?                                             \
271         3                                                                   \
272     : ( 0x9E == ((U8*)s)[1] ) ?                                             \
273         ( ( ( ((U8*)s)[2] <= 0xA3 ) || ( ((U8*)s)[2] >= 0xB0 ) ) ? 3 : 0 )  \
274     : ( ( 0x9F == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] <= 0x86 ) || ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBB ) ) ) ? 3 : 0 )\
275 : ( ( ( ( 0xF0 == ((U8*)s)[0] ) && ( 0x9F == ((U8*)s)[1] ) ) && ( 0x87 == ((U8*)s)[2] ) ) && ( ((U8*)s)[3] >= 0xA6 ) ) ? 4 : 0 )
276
277 /*
278         GCB_T: Grapheme_Cluster_Break=T
279
280         \p{_X_GCB_T}
281 */
282 /*** GENERATED CODE ***/
283 #define is_GCB_T_utf8(s)                                                    \
284 ( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
285     ( ( 0x86 == ((U8*)s)[1] ) ?                                             \
286         ( ( ((U8*)s)[2] >= 0xA8 ) ? 3 : 0 )                                 \
287     : ( 0x87 == ((U8*)s)[1] ) ?                                             \
288         3                                                                   \
289     : 0 )                                                                   \
290 : ( ( ( 0xED == ((U8*)s)[0] ) && ( 0x9F == ((U8*)s)[1] ) ) && ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xBB ) ) ? 3 : 0 )
291
292 /*
293         GCB_V: Grapheme_Cluster_Break=V
294
295         \p{_X_GCB_V}
296 */
297 /*** GENERATED CODE ***/
298 #define is_GCB_V_utf8(s)                                                    \
299 ( ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
300     ( ( 0x85 == ((U8*)s)[1] ) ?                                             \
301         ( ( ((U8*)s)[2] >= 0xA0 ) ? 3 : 0 )                                 \
302     : ( ( 0x86 == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0xA7 ) ) ? 3 : 0 )      \
303 : ( 0xED == ((U8*)s)[0] ) ?                                                 \
304     ( ( 0x9E == ((U8*)s)[1] ) ?                                             \
305         ( ( ((U8*)s)[2] >= 0xB0 ) ? 3 : 0 )                                 \
306     : ( ( 0x9F == ((U8*)s)[1] ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )      \
307 : 0 )
308
309 /*
310         QUOTEMETA: Meta-characters that \Q should quote
311
312         \p{_Perl_Quotemeta}
313 */
314 /*** GENERATED CODE ***/
315 #define is_QUOTEMETA_high(s)                                                \
316 ( ( 0xCD == ((U8*)s)[0] ) ?                                                 \
317     ( ( 0x8F == ((U8*)s)[1] ) ? 2 : 0 )                                     \
318 : ( 0xD8 == ((U8*)s)[0] ) ?                                                 \
319     ( ( 0x9C == ((U8*)s)[1] ) ? 2 : 0 )                                     \
320 : ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
321     ( ( 0x85 == ((U8*)s)[1] ) ?                                             \
322         ( ( 0x9F == ((U8*)s)[2] || 0xA0 == ((U8*)s)[2] ) ? 3 : 0 )          \
323     : ( 0x9A == ((U8*)s)[1] ) ?                                             \
324         ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
325     : ( 0x9E == ((U8*)s)[1] ) ?                                             \
326         ( ( ( ((U8*)s)[2] & 0xFE ) == 0xB4 ) ? 3 : 0 )                      \
327     : ( ( 0xA0 == ((U8*)s)[1] ) && ( 0x8B <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8E ) ) ? 3 : 0 )\
328 : ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
329     ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
330         ( ( ((U8*)s)[2] <= 0xBE ) ? 3 : 0 )                                 \
331     : ( 0x81 == ((U8*)s)[1] ) ?                                             \
332         ( ( ( 0x81 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x93 ) || ( 0x95 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xAF ) ) ? 3 : 0 )\
333     : ( 0x86 == ((U8*)s)[1] ) ?                                             \
334         ( ( ((U8*)s)[2] >= 0x90 ) ? 3 : 0 )                                 \
335     : ( ( 0x87 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x90 ) || ( 0x94 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x9C ) || ( 0x9F <= ((U8*)s)[1] && ((U8*)s)[1] <= 0xAF ) || ( ((U8*)s)[1] & 0xFE ) == 0xB8 ) ?\
336         3                                                                   \
337     : ( 0x91 == ((U8*)s)[1] ) ?                                             \
338         ( ( ((U8*)s)[2] <= 0x9F ) ? 3 : 0 )                                 \
339     : ( 0x9D == ((U8*)s)[1] ) ?                                             \
340         ( ( ((U8*)s)[2] <= 0xB5 ) ? 3 : 0 )                                 \
341     : ( ( 0x9E == ((U8*)s)[1] ) && ( ((U8*)s)[2] >= 0x94 ) ) ? 3 : 0 )      \
342 : ( 0xE3 == ((U8*)s)[0] ) ?                                                 \
343     ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
344         ( ( ( ((U8*)s)[2] <= 0x83 ) || ( 0x88 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xA0 ) || 0xB0 == ((U8*)s)[2] ) ? 3 : 0 )\
345     : ( ( 0x85 == ((U8*)s)[1] ) && ( 0xA4 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
346 : ( 0xEF == ((U8*)s)[0] ) ?                                                 \
347     ( ( 0xB4 == ((U8*)s)[1] ) ?                                             \
348         ( ( ((U8*)s)[2] >= 0xBE ) ? 3 : 0 )                                 \
349     : ( 0xB8 == ((U8*)s)[1] ) ?                                             \
350         ( ( ((U8*)s)[2] <= 0x8F ) ? 3 : 0 )                                 \
351     : ( 0xB9 == ((U8*)s)[1] ) ?                                             \
352         ( ( 0x85 == ((U8*)s)[2] || 0x86 == ((U8*)s)[2] ) ? 3 : 0 )          \
353     : ( 0xBB == ((U8*)s)[1] ) ?                                             \
354         ( ( 0xBF == ((U8*)s)[2] ) ? 3 : 0 )                                 \
355     : ( 0xBE == ((U8*)s)[1] ) ?                                             \
356         ( ( 0xA0 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
357     : ( ( 0xBF == ((U8*)s)[1] ) && ( 0xB0 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0xB8 ) ) ? 3 : 0 )\
358 : ( 0xF0 == ((U8*)s)[0] ) ?                                                 \
359     ( ( 0x9B == ((U8*)s)[1] ) ?                                             \
360         ( ( ( 0xB2 == ((U8*)s)[2] ) && ( ( ((U8*)s)[3] & 0xFC ) == 0xA0 ) ) ? 4 : 0 )\
361     : ( ( ( 0x9D == ((U8*)s)[1] ) && ( 0x85 == ((U8*)s)[2] ) ) && ( 0xB3 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0xBA ) ) ? 4 : 0 )\
362 : ( ( 0xF3 == ((U8*)s)[0] ) && ( 0xA0 == ((U8*)s)[1] ) ) ? 4 : 0 )
363
364 /*
365         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
366
367         &regcharclass_multi_char_folds::multi_char_folds(1)
368 */
369 /*** GENERATED CODE ***/
370 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
371 ( ( 0x61 == ((U8*)s)[0] ) ?                                                 \
372         ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 )  \
373     : ( 0x66 == ((U8*)s)[0] ) ?                                             \
374         ( ( 0x66 == ((U8*)s)[1] ) ?                                         \
375             ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 )      \
376         : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 )          \
377     : ( 0x68 == ((U8*)s)[0] ) ?                                             \
378         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
379     : ( 0x69 == ((U8*)s)[0] ) ?                                             \
380         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
381     : ( 0x6A == ((U8*)s)[0] ) ?                                             \
382         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 )  \
383     : ( 0x73 == ((U8*)s)[0] ) ?                                             \
384         ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 )          \
385     : ( 0x74 == ((U8*)s)[0] ) ?                                             \
386         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
387     : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ?                      \
388         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 )  \
389     : ( 0xC5 == ((U8*)s)[0] ) ?                                             \
390         ( ( ( ( 0xBF == ((U8*)s)[1] ) && ( 0xC5 == ((U8*)s)[2] ) ) && ( 0xBF == ((U8*)s)[3] ) ) ? 4 : 0 )\
391     : ( 0xCA == ((U8*)s)[0] ) ?                                             \
392         ( ( ( 0xBC == ((U8*)s)[1] ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 )  \
393     : ( 0xCE == ((U8*)s)[0] ) ?                                             \
394         ( ( ( ((U8*)s)[1] & 0xFD ) == 0xAC ) ?                              \
395             ( ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
396         : ( 0xB1 == ((U8*)s)[1] || 0xB7 == ((U8*)s)[1] ) ?                  \
397             ( ( 0xCD == ((U8*)s)[2] ) ?                                     \
398                 ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 )                         \
399             : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
400         : ( ( ( 0xB9 == ((U8*)s)[1] ) && ( 0xCD == ((U8*)s)[2] ) ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
401     : ( 0xCF == ((U8*)s)[0] ) ?                                             \
402         ( ( 0x81 == ((U8*)s)[1] ) ?                                         \
403             ( ( ( 0xCC == ((U8*)s)[2] ) && ( 0x93 == ((U8*)s)[3] ) ) ? 4 : 0 )\
404         : ( 0x85 == ((U8*)s)[1] ) ?                                         \
405             ( ( 0xCC == ((U8*)s)[2] ) ?                                     \
406                 ( ( 0x93 == ((U8*)s)[3] ) ? 4 : 0 )                         \
407             : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
408         : ( 0x89 == ((U8*)s)[1] ) ?                                         \
409             ( ( 0xCD == ((U8*)s)[2] ) ?                                     \
410                 ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 )                         \
411             : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
412         : ( ( ( 0x8E == ((U8*)s)[1] ) && ( 0xCE == ((U8*)s)[2] ) ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
413     : ( 0xD5 == ((U8*)s)[0] ) ?                                             \
414         ( ( 0xA5 == ((U8*)s)[1] ) ?                                         \
415             ( ( ( 0xD6 == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
416         : ( 0xB4 == ((U8*)s)[1] ) ?                                         \
417             ( ( ( 0xD5 == ((U8*)s)[2] ) && ( ( ( ((U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((U8*)s)[3] == 0xAB || ((U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
418         : ( ( ( 0xBE == ((U8*)s)[1] ) && ( 0xD5 == ((U8*)s)[2] ) ) && ( 0xB6 == ((U8*)s)[3] ) ) ? 4 : 0 )\
419     : ( 0xE1 == ((U8*)s)[0] ) ?                                             \
420         ( ( 0xBC == ((U8*)s)[1] ) ?                                         \
421             ( ( ( ( ( ((U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
422         : ( ( ( ( 0xBD == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0xB0 ) || ((U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
423     : 0 )
424
425
426 /*** GENERATED CODE ***/
427 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
428 ( ((e)-(s) > 3) ?                                                           \
429     ( ( 0x61 == ((U8*)s)[0] ) ?                                             \
430         ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 )  \
431     : ( 0x66 == ((U8*)s)[0] ) ?                                             \
432         ( ( 0x66 == ((U8*)s)[1] ) ?                                         \
433             ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 )      \
434         : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 )          \
435     : ( 0x68 == ((U8*)s)[0] ) ?                                             \
436         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
437     : ( 0x69 == ((U8*)s)[0] ) ?                                             \
438         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
439     : ( 0x6A == ((U8*)s)[0] ) ?                                             \
440         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 )  \
441     : ( 0x73 == ((U8*)s)[0] ) ?                                             \
442         ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 )          \
443     : ( 0x74 == ((U8*)s)[0] ) ?                                             \
444         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
445     : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ?                      \
446         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 )  \
447     : ( 0xC5 == ((U8*)s)[0] ) ?                                             \
448         ( ( ( ( 0xBF == ((U8*)s)[1] ) && ( 0xC5 == ((U8*)s)[2] ) ) && ( 0xBF == ((U8*)s)[3] ) ) ? 4 : 0 )\
449     : ( 0xCA == ((U8*)s)[0] ) ?                                             \
450         ( ( ( 0xBC == ((U8*)s)[1] ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 )  \
451     : ( 0xCE == ((U8*)s)[0] ) ?                                             \
452         ( ( ( ((U8*)s)[1] & 0xFD ) == 0xAC ) ?                              \
453             ( ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
454         : ( 0xB1 == ((U8*)s)[1] || 0xB7 == ((U8*)s)[1] ) ?                  \
455             ( ( 0xCD == ((U8*)s)[2] ) ?                                     \
456                 ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 )                         \
457             : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
458         : ( ( ( 0xB9 == ((U8*)s)[1] ) && ( 0xCD == ((U8*)s)[2] ) ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
459     : ( 0xCF == ((U8*)s)[0] ) ?                                             \
460         ( ( 0x81 == ((U8*)s)[1] ) ?                                         \
461             ( ( ( 0xCC == ((U8*)s)[2] ) && ( 0x93 == ((U8*)s)[3] ) ) ? 4 : 0 )\
462         : ( 0x85 == ((U8*)s)[1] ) ?                                         \
463             ( ( 0xCC == ((U8*)s)[2] ) ?                                     \
464                 ( ( 0x93 == ((U8*)s)[3] ) ? 4 : 0 )                         \
465             : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
466         : ( 0x89 == ((U8*)s)[1] ) ?                                         \
467             ( ( 0xCD == ((U8*)s)[2] ) ?                                     \
468                 ( ( 0x82 == ((U8*)s)[3] ) ? 4 : 0 )                         \
469             : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
470         : ( ( ( 0x8E == ((U8*)s)[1] ) && ( 0xCE == ((U8*)s)[2] ) ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
471     : ( 0xD5 == ((U8*)s)[0] ) ?                                             \
472         ( ( 0xA5 == ((U8*)s)[1] ) ?                                         \
473             ( ( ( 0xD6 == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
474         : ( 0xB4 == ((U8*)s)[1] ) ?                                         \
475             ( ( ( 0xD5 == ((U8*)s)[2] ) && ( ( ( ((U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((U8*)s)[3] == 0xAB || ((U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
476         : ( ( ( 0xBE == ((U8*)s)[1] ) && ( 0xD5 == ((U8*)s)[2] ) ) && ( 0xB6 == ((U8*)s)[3] ) ) ? 4 : 0 )\
477     : 0 )                                                                   \
478 : ((e)-(s) > 2) ?                                                           \
479     ( ( 0x61 == ((U8*)s)[0] ) ?                                             \
480         ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 )  \
481     : ( 0x66 == ((U8*)s)[0] ) ?                                             \
482         ( ( 0x66 == ((U8*)s)[1] ) ?                                         \
483             ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 )      \
484         : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 )          \
485     : ( 0x68 == ((U8*)s)[0] ) ?                                             \
486         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
487     : ( 0x69 == ((U8*)s)[0] ) ?                                             \
488         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
489     : ( 0x6A == ((U8*)s)[0] ) ?                                             \
490         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 )  \
491     : ( 0x73 == ((U8*)s)[0] ) ?                                             \
492         ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 )          \
493     : ( 0x74 == ((U8*)s)[0] ) ?                                             \
494         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
495     : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ?                      \
496         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 )  \
497     : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0xBC == ((U8*)s)[1] ) ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 )\
498 : ((e)-(s) > 1) ?                                                           \
499     ( ( 0x66 == ((U8*)s)[0] ) ?                                             \
500         ( ( 0x66 == ((U8*)s)[1] || 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 )\
501     : ( ( 0x73 == ((U8*)s)[0] ) && ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ) ? 2 : 0 )\
502 : 0 )
503
504
505 /*** GENERATED CODE ***/
506 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
507 ( ((e)-(s) > 5) ?                                                           \
508     ( ( 0x61 == ((U8*)s)[0] ) ?                                             \
509         ( ( ( 0xCA == ((U8*)s)[1] ) && ( 0xBE == ((U8*)s)[2] ) ) ? 3 : 0 )  \
510     : ( 0x66 == ((U8*)s)[0] ) ?                                             \
511         ( ( 0x66 == ((U8*)s)[1] ) ?                                         \
512             ( ( 0x69 == ((U8*)s)[2] || 0x6C == ((U8*)s)[2] ) ? 3 : 2 )      \
513         : ( 0x69 == ((U8*)s)[1] || 0x6C == ((U8*)s)[1] ) ? 2 : 0 )          \
514     : ( 0x68 == ((U8*)s)[0] ) ?                                             \
515         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
516     : ( 0x69 == ((U8*)s)[0] ) ?                                             \
517         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x87 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
518     : ( 0x6A == ((U8*)s)[0] ) ?                                             \
519         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8C == ((U8*)s)[2] ) ) ? 3 : 0 )  \
520     : ( 0x73 == ((U8*)s)[0] ) ?                                             \
521         ( ( 0x73 == ((U8*)s)[1] || 0x74 == ((U8*)s)[1] ) ? 2 : 0 )          \
522     : ( 0x74 == ((U8*)s)[0] ) ?                                             \
523         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x88 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
524     : ( 0x77 == ((U8*)s)[0] || 0x79 == ((U8*)s)[0] ) ?                      \
525         ( ( ( 0xCC == ((U8*)s)[1] ) && ( 0x8A == ((U8*)s)[2] ) ) ? 3 : 0 )  \
526     : ( 0xC5 == ((U8*)s)[0] ) ?                                             \
527         ( ( ( ( 0xBF == ((U8*)s)[1] ) && ( 0xC5 == ((U8*)s)[2] ) ) && ( 0xBF == ((U8*)s)[3] ) ) ? 4 : 0 )\
528     : ( 0xCA == ((U8*)s)[0] ) ?                                             \
529         ( ( ( 0xBC == ((U8*)s)[1] ) && ( 0x6E == ((U8*)s)[2] ) ) ? 3 : 0 )  \
530     : ( 0xCE == ((U8*)s)[0] ) ?                                             \
531         ( ( ( ((U8*)s)[1] & 0xFD ) == 0xAC ) ?                              \
532             ( ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
533         : ( 0xB1 == ((U8*)s)[1] || 0xB7 == ((U8*)s)[1] ) ?                  \
534             ( ( 0xCD == ((U8*)s)[2] ) ?                                     \
535                 ( ( 0x82 == ((U8*)s)[3] ) ?                                 \
536                     ( ( ( 0xCE == ((U8*)s)[4] ) && ( 0xB9 == ((U8*)s)[5] ) ) ? 6 : 4 )\
537                 : 0 )                                                       \
538             : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
539         : ( 0xB9 == ((U8*)s)[1] ) ?                                         \
540             ( ( 0xCC == ((U8*)s)[2] ) ?                                     \
541                 ( ( 0x88 == ((U8*)s)[3] ) ?                                 \
542                     ( ( 0xCC == ((U8*)s)[4] ) ?                             \
543                         ( ( ( ((U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 0 )      \
544                     : ( ( 0xCD == ((U8*)s)[4] ) && ( 0x82 == ((U8*)s)[5] ) ) ? 6 : 0 )\
545                 : 0 )                                                       \
546             : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
547         : 0 )                                                               \
548     : ( 0xCF == ((U8*)s)[0] ) ?                                             \
549         ( ( 0x81 == ((U8*)s)[1] ) ?                                         \
550             ( ( ( 0xCC == ((U8*)s)[2] ) && ( 0x93 == ((U8*)s)[3] ) ) ? 4 : 0 )\
551         : ( 0x85 == ((U8*)s)[1] ) ?                                         \
552             ( ( 0xCC == ((U8*)s)[2] ) ?                                     \
553                 ( ( 0x88 == ((U8*)s)[3] ) ?                                 \
554                     ( ( 0xCC == ((U8*)s)[4] ) ?                             \
555                         ( ( ( ((U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 0 )      \
556                     : ( ( 0xCD == ((U8*)s)[4] ) && ( 0x82 == ((U8*)s)[5] ) ) ? 6 : 0 )\
557                 : ( 0x93 == ((U8*)s)[3] ) ?                                 \
558                     ( ( 0xCC == ((U8*)s)[4] ) ?                             \
559                         ( ( ( ((U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 4 )      \
560                     : ( ( 0xCD == ((U8*)s)[4] ) && ( 0x82 == ((U8*)s)[5] ) ) ? 6 : 4 )\
561                 : 0 )                                                       \
562             : ( ( 0xCD == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
563         : ( 0x89 == ((U8*)s)[1] ) ?                                         \
564             ( ( 0xCD == ((U8*)s)[2] ) ?                                     \
565                 ( ( 0x82 == ((U8*)s)[3] ) ?                                 \
566                     ( ( ( 0xCE == ((U8*)s)[4] ) && ( 0xB9 == ((U8*)s)[5] ) ) ? 6 : 4 )\
567                 : 0 )                                                       \
568             : ( ( 0xCE == ((U8*)s)[2] ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
569         : ( ( ( 0x8E == ((U8*)s)[1] ) && ( 0xCE == ((U8*)s)[2] ) ) && ( 0xB9 == ((U8*)s)[3] ) ) ? 4 : 0 )\
570     : ( 0xD5 == ((U8*)s)[0] ) ?                                             \
571         ( ( 0xA5 == ((U8*)s)[1] ) ?                                         \
572             ( ( ( 0xD6 == ((U8*)s)[2] ) && ( 0x82 == ((U8*)s)[3] ) ) ? 4 : 0 )\
573         : ( 0xB4 == ((U8*)s)[1] ) ?                                         \
574             ( ( ( 0xD5 == ((U8*)s)[2] ) && ( ( ( ((U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((U8*)s)[3] == 0xAB || ((U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
575         : ( ( ( 0xBE == ((U8*)s)[1] ) && ( 0xD5 == ((U8*)s)[2] ) ) && ( 0xB6 == ((U8*)s)[3] ) ) ? 4 : 0 )\
576     : ( 0xE1 == ((U8*)s)[0] ) ?                                             \
577         ( ( 0xBC == ((U8*)s)[1] ) ?                                         \
578             ( ( ( ( ( ((U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
579         : ( ( ( ( 0xBD == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0xB0 ) || ((U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((U8*)s)[3] ) ) && ( 0xB9 == ((U8*)s)[4] ) ) ? 5 : 0 )\
580     : 0 )                                                                   \
581 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
582
583 /*
584         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
585
586         &regcharclass_multi_char_folds::multi_char_folds(0)
587 */
588 /*** GENERATED CODE ***/
589 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
590 ( ((e)-(s) > 2) ?                                                           \
591     ( ( ( ((U8*)s)[0] & 0xDF ) == 0x46 ) ?                                  \
592         ( ( ( ((U8*)s)[1] & 0xDF ) == 0x46 ) ?                              \
593             ( ( ( ( ((U8*)s)[2] & 0xDF ) == 0x49 ) || ( ( ((U8*)s)[2] & 0xDF ) == 0x4C ) ) ? 3 : 2 )\
594         : ( ( ( ((U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
595     : ( ( ( ((U8*)s)[0] & 0xDF ) == 0x53 ) && ( ( ( ((U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
596 : ((e)-(s) > 1) ?                                                           \
597     ( ( ( ((U8*)s)[0] & 0xDF ) == 0x46 ) ?                                  \
598         ( ( ( ( ((U8*)s)[1] & 0xDF ) == 0x46 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
599     : ( ( ( ((U8*)s)[0] & 0xDF ) == 0x53 ) && ( ( ( ((U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
600 : 0 )
601
602 /*
603         FOLDS_TO_MULTI: characters that fold to multi-char strings
604
605         \p{_Perl_Folds_To_Multi_Char}
606 */
607 /*** GENERATED CODE ***/
608 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
609 ( ( 0xC3 == ((U8*)s)[0] ) ?                                                 \
610     ( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 )                                     \
611 : ( 0xC4 == ((U8*)s)[0] || 0xC7 == ((U8*)s)[0] ) ?                          \
612     ( ( 0xB0 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
613 : ( 0xC5 == ((U8*)s)[0] ) ?                                                 \
614     ( ( 0x89 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
615 : ( 0xCE == ((U8*)s)[0] ) ?                                                 \
616     ( ( ( ((U8*)s)[1] & 0xDF ) == 0x90 ) ? 2 : 0 )                          \
617 : ( 0xD6 == ((U8*)s)[0] ) ?                                                 \
618     ( ( 0x87 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
619 : ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
620     ( ( 0xBA == ((U8*)s)[1] ) ?                                             \
621         ( ( ( 0x96 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x9A ) || 0x9E == ((U8*)s)[2] ) ? 3 : 0 )\
622     : ( 0xBD == ((U8*)s)[1] ) ?                                             \
623         ( ( ( ((U8*)s)[2] & 0xF9 ) == 0x90 ) ? 3 : 0 )                      \
624     : ( 0xBE == ((U8*)s)[1] ) ?                                             \
625         ( ( ( ( ((U8*)s)[2] & 0xE0 ) == 0x80 ) || ( ( ((U8*)s)[2] & 0xF0 ) == 0xA0 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0xB2 ) || ( ( ((U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ? 3 : 0 )\
626     : ( ( 0xBF == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xCA ) == 0x82 ) || ( ( ((U8*)s)[2] & 0xF7 ) == 0x84 ) || ((U8*)s)[2] == 0xA4 || ( ( ((U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
627 : ( ( ( 0xEF == ((U8*)s)[0] ) && ( 0xAC == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] <= 0x86 ) || ( 0x93 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x97 ) ) ) ? 3 : 0 )
628
629 /*
630         PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
631
632         \p{_Perl_Problematic_Locale_Folds}
633 */
634 /*** GENERATED CODE ***/
635 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
636 ( ( ((U8*)s)[0] <= 0x7F ) ? 1                                               \
637 : ( ( ((U8*)s)[0] & 0xFE ) == 0xC2 ) ?                                      \
638     2                                                                       \
639 : ( 0xC4 == ((U8*)s)[0] || 0xC7 == ((U8*)s)[0] ) ?                          \
640     ( ( 0xB0 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
641 : ( 0xC5 == ((U8*)s)[0] ) ?                                                 \
642     ( ( 0x89 == ((U8*)s)[1] || 0xB8 == ((U8*)s)[1] || 0xBF == ((U8*)s)[1] ) ? 2 : 0 )\
643 : ( 0xCE == ((U8*)s)[0] ) ?                                                 \
644     ( ( ( ((U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 )                          \
645 : ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
646     ( ( ( 0xBA == ((U8*)s)[1] ) && ( ( 0x96 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x9A ) || 0x9E == ((U8*)s)[2] ) ) ? 3 : 0 )\
647 : ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
648     ( ( ( 0x84 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
649 : ( ( ( 0xEF == ((U8*)s)[0] ) && ( 0xAC == ((U8*)s)[1] ) ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )
650
651 /*** GENERATED CODE ***/
652 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
653 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
654 ( 0x130 == cp || ( 0x130 < cp &&                                            \
655 ( 0x149 == cp || ( 0x149 < cp &&                                            \
656 ( 0x178 == cp || ( 0x178 < cp &&                                            \
657 ( 0x17F == cp || ( 0x17F < cp &&                                            \
658 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
659 ( 0x39C == cp || ( 0x39C < cp &&                                            \
660 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
661 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
662 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
663 ( 0x212A == cp || ( 0x212A < cp &&                                          \
664 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
665
666 /*
667         PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
668
669         \p{_Perl_Problematic_Locale_Foldeds_Start}
670 */
671 /*** GENERATED CODE ***/
672 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
673 ( ( ((U8*)s)[0] <= 0x7F ) ? 1                                               \
674 : ( ( ((U8*)s)[0] & 0xFE ) == 0xC2 ) ?                                      \
675     2                                                                       \
676 : ( 0xC4 == ((U8*)s)[0] || 0xC7 == ((U8*)s)[0] ) ?                          \
677     ( ( 0xB0 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
678 : ( 0xC5 == ((U8*)s)[0] ) ?                                                 \
679     ( ( 0x89 == ((U8*)s)[1] || 0xB8 == ((U8*)s)[1] || 0xBF == ((U8*)s)[1] ) ? 2 : 0 )\
680 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
681     ( ( 0xBC == ((U8*)s)[1] ) ? 2 : 0 )                                     \
682 : ( 0xCE == ((U8*)s)[0] ) ?                                                 \
683     ( ( ( ((U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 )                          \
684 : ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
685     ( ( ( 0xBA == ((U8*)s)[1] ) && ( ( 0x96 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x9A ) || 0x9E == ((U8*)s)[2] ) ) ? 3 : 0 )\
686 : ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
687     ( ( ( 0x84 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
688 : ( ( ( 0xEF == ((U8*)s)[0] ) && ( 0xAC == ((U8*)s)[1] ) ) && ( ((U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )
689
690 /*** GENERATED CODE ***/
691 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
692 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
693 ( 0x130 == cp || ( 0x130 < cp &&                                            \
694 ( 0x149 == cp || ( 0x149 < cp &&                                            \
695 ( 0x178 == cp || ( 0x178 < cp &&                                            \
696 ( 0x17F == cp || ( 0x17F < cp &&                                            \
697 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
698 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
699 ( 0x39C == cp || ( 0x39C < cp &&                                            \
700 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
701 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
702 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
703 ( 0x212A == cp || ( 0x212A < cp &&                                          \
704 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
705
706 /*
707         PATWS: pattern white space
708
709         \p{PatWS}
710 */
711 /*** GENERATED CODE ***/
712 #define is_PATWS_safe(s,e,is_utf8)                                          \
713 ( ( LIKELY((e) > (s)) ) ?                                                   \
714     ( ( ( 0x09 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x20 == ((U8*)s)[0] ) ? 1\
715     : (! is_utf8 ) ?                                                        \
716             ( 0x85 == ((U8*)s)[0] )                                         \
717         : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ?                          \
718             ( ( 0xC2 == ((U8*)s)[0] ) ?                                     \
719                 ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                         \
720             : ( ( ( 0xE2 == ((U8*)s)[0] ) && ( 0x80 == ((U8*)s)[1] ) ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x8E || ( ((U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
721         : 0 )                                                               \
722 : 0 )
723
724 /*** GENERATED CODE ***/
725 #define is_PATWS_cp(cp)                                                     \
726 ( ( 0x09 <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
727 ( 0x20 == cp || ( 0x20 < cp &&                                              \
728 ( 0x85 == cp || ( 0x85 < cp &&                                              \
729 ( 0x200E == cp || ( 0x200E < cp &&                                          \
730 ( 0x200F == cp || ( 0x200F < cp &&                                          \
731 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) )
732
733 #endif  /* ASCII/Latin1 */
734
735 #if 'A' == 193 /* EBCDIC 1047 */ \
736      && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
737      && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
738      && '$' == 91 && '@' == 124 && '`' == 121
739 /*
740         LNBREAK: Line Break: \R
741
742         "\x0D\x0A"      # CRLF - Network (Windows) line ending
743         \p{VertSpace}
744 */
745 /*** GENERATED CODE ***/
746 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
747 ( ((e)-(s) > 2) ?                                                           \
748     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
749     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
750         ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
751     : ( ( ( ( is_utf8 ) && ( 0xCA == ((U8*)s)[0] ) ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
752 : ((e)-(s) > 1) ?                                                           \
753     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
754     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
755         ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
756     : 0 )                                                                   \
757 : ((e)-(s) > 0) ?                                                           \
758     ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
759 : 0 )
760
761 /*** GENERATED CODE ***/
762 #define is_LNBREAK_utf8_safe(s,e)                                           \
763 ( ((e)-(s) > 2) ?                                                           \
764     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
765     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
766         ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
767     : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
768 : ((e)-(s) > 1) ?                                                           \
769     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
770     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
771         ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
772     : 0 )                                                                   \
773 : ((e)-(s) > 0) ?                                                           \
774     ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
775 : 0 )
776
777 /*** GENERATED CODE ***/
778 #define is_LNBREAK_latin1_safe(s,e)                                         \
779 ( ((e)-(s) > 1) ?                                                           \
780     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
781     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
782         ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
783     : 0 )                                                                   \
784 : ((e)-(s) > 0) ?                                                           \
785     ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
786 : 0 )
787
788 /*
789         HORIZWS: Horizontal Whitespace: \h \H
790
791         \p{HorizSpace}
792 */
793 /*** GENERATED CODE ***/
794 #define is_HORIZWS_high(s)                                                  \
795 ( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
796     ( ( ( 0x63 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
797 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
798     ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
799         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
800     : ( 0x42 == ((U8*)s)[1] ) ?                                             \
801         ( ( 0x56 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
802     : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x73 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
803 : ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
804
805 /*** GENERATED CODE ***/
806 #define is_HORIZWS_cp_high(cp)                                              \
807 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
808 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
809 ( 0x202F == cp || ( 0x202F < cp &&                                          \
810 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
811
812 /*
813         VERTWS: Vertical Whitespace: \v \V
814
815         \p{VertSpace}
816 */
817 /*** GENERATED CODE ***/
818 #define is_VERTWS_high(s)                                                   \
819 ( ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )
820
821 /*** GENERATED CODE ***/
822 #define is_VERTWS_cp_high(cp)                                               \
823 ( 0x2028 == cp || 0x2029 == cp )
824
825 /*
826         XDIGIT: Hexadecimal digits
827
828         \p{XDigit}
829 */
830 /*** GENERATED CODE ***/
831 #define is_XDIGIT_high(s)                                                   \
832 ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x73 == ((U8*)s)[1] ) ) ? ( ( 0x67 == ((U8*)s)[2] ) ?\
833             ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x68 ) ) ? 4 : 0 )\
834         : ( ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) && ( 0x42 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
835
836 /*** GENERATED CODE ***/
837 #define is_XDIGIT_cp_high(cp)                                               \
838 ( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
839 ( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
840
841 /*
842         XPERLSPACE: \p{XPerlSpace}
843
844         \p{XPerlSpace}
845 */
846 /*** GENERATED CODE ***/
847 #define is_XPERLSPACE_high(s)                                               \
848 ( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
849     ( ( ( 0x63 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
850 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
851     ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
852         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
853     : ( 0x42 == ((U8*)s)[1] ) ?                                             \
854         ( ( ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
855     : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x73 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
856 : ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
857
858 /*** GENERATED CODE ***/
859 #define is_XPERLSPACE_cp_high(cp)                                           \
860 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
861 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
862 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
863 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
864 ( 0x202F == cp || ( 0x202F < cp &&                                          \
865 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
866
867 /*
868         REPLACEMENT: Unicode REPLACEMENT CHARACTER
869
870         0xFFFD
871 */
872 /*** GENERATED CODE ***/
873 #define is_REPLACEMENT_utf8_safe(s,e)                                       \
874 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((U8*)s)[0] ) ) && ( 0x73 == ((U8*)s)[1] ) ) && ( 0x73 == ((U8*)s)[2] ) ) && ( 0x71 == ((U8*)s)[3] ) ) ? 4 : 0 )
875
876 /*
877         NONCHAR: Non character code points
878
879         \p{Nchar}
880 */
881 /*** GENERATED CODE ***/
882 #define is_NONCHAR_utf8(s)                                                  \
883 ( ( 0xDD == ((U8*)s)[0] ) ?                                                 \
884     ( ( 0x73 == ((U8*)s)[1] ) ?                                             \
885         ( ( 0x55 == ((U8*)s)[2] ) ?                                         \
886             ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
887         : ( 0x56 == ((U8*)s)[2] ) ?                                         \
888             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
889         : ( ( 0x73 == ((U8*)s)[2] ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
890     : 0 )                                                                   \
891 : ( 0xDF == ((U8*)s)[0] || 0xEA == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ?   \
892     ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x73 == ((U8*)s)[2] ) ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
893 : ( 0xED == ((U8*)s)[0] ) ?                                                 \
894     ( ( ( ( ( ((U8*)s)[1] == 0x4A || ((U8*)s)[1] == 0x52 || ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) || ((U8*)s)[1] == 0x58 || ((U8*)s)[1] == 0x62 || ( ( ((U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFD ) == 0x71 ) ) && ( 0x73 == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) && ( ( ((U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 )\
895 : ( ( ( ( ( 0xEE == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x73 == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) && ( ( ((U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 )
896
897 /*
898         SURROGATE: Surrogate characters
899
900         \p{Gc=Cs}
901 */
902 /*** GENERATED CODE ***/
903 #define is_SURROGATE_utf8(s)                                                \
904 ( ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x65 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )
905
906 /*
907         GCB_L: Grapheme_Cluster_Break=L
908
909         \p{_X_GCB_L}
910 */
911 /*** GENERATED CODE ***/
912 #define is_GCB_L_utf8(s)                                                    \
913 ( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
914     ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || 0x51 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
915 : ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x51 == ((U8*)s)[1] ) ) && ( 0x52 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || 0x70 == ((U8*)s)[3] ) ) ? 4 : 0 )
916
917 /*
918         GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
919
920         \p{_X_LV_LVT_V}
921 */
922 /*** GENERATED CODE ***/
923 #define is_GCB_LV_LVT_V_utf8(s)                                             \
924 ( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
925     ( ( ( ((U8*)s)[1] & 0xFE ) == 0x52 ) ?                                  \
926         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
927     : ( ( 0x54 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
928 : ( 0xDD == ((U8*)s)[0] ) ?                                                 \
929     ( ( ( 0x52 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( ((U8*)s)[1] & 0xFE ) == 0x62 ) ?\
930         ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
931     : ( 0x64 == ((U8*)s)[1] ) ?                                             \
932         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || 0x70 == ((U8*)s)[2] ) ?\
933             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
934         : ( 0x71 == ((U8*)s)[2] ) ?                                         \
935             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
936         : ( ( 0x72 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )\
937     : 0 )                                                                   \
938 : 0 )
939
940 /*
941         GCB_Prepend: Grapheme_Cluster_Break=Prepend
942
943         \p{_X_GCB_Prepend}
944 */
945 /*** GENERATED CODE ***/
946 #define is_GCB_Prepend_utf8(s)                                              \
947 ( 0 )
948
949 /*
950         GCB_RI: Grapheme_Cluster_Break=RI
951
952         \p{_X_RI}
953 */
954 /*** GENERATED CODE ***/
955 #define is_GCB_RI_utf8(s)                                                   \
956 ( ( ( ( ( 0xDF == ((U8*)s)[0] ) && ( 0x70 == ((U8*)s)[1] ) ) && ( 0x56 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )
957
958 /*
959         GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
960
961         \p{_X_Special_Begin_Start}
962 */
963 /*** GENERATED CODE ***/
964 #define is_GCB_SPECIAL_BEGIN_START_utf8(s)                                  \
965 ( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
966     ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x56 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
967 : ( 0xDD == ((U8*)s)[0] ) ?                                                 \
968     ( ( 0x51 == ((U8*)s)[1] ) ?                                             \
969         ( ( ( 0x52 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || 0x70 == ((U8*)s)[3] ) ) ? 4 : 0 )\
970     : ( ( 0x52 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( ((U8*)s)[1] & 0xFE ) == 0x62 ) ?\
971         ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )\
972     : ( 0x64 == ((U8*)s)[1] ) ?                                             \
973         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || 0x70 == ((U8*)s)[2] ) ?\
974             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
975         : ( 0x71 == ((U8*)s)[2] ) ?                                         \
976             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
977         : ( 0x72 == ((U8*)s)[2] ) ?                                         \
978             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x52 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
979         : ( ( 0x73 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) ) ) ? 4 : 0 )\
980     : 0 )                                                                   \
981 : ( ( ( ( 0xDF == ((U8*)s)[0] ) && ( 0x70 == ((U8*)s)[1] ) ) && ( 0x56 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )
982
983 /*
984         GCB_T: Grapheme_Cluster_Break=T
985
986         \p{_X_GCB_T}
987 */
988 /*** GENERATED CODE ***/
989 #define is_GCB_T_utf8(s)                                                    \
990 ( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
991     ( ( 0x54 == ((U8*)s)[1] ) ?                                             \
992         ( ( ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
993     : ( ( 0x55 == ((U8*)s)[1] || 0x56 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
994 : ( ( 0xDD == ((U8*)s)[0] ) && ( 0x64 == ((U8*)s)[1] ) ) ? ( ( 0x72 == ((U8*)s)[2] ) ?\
995             ( ( ( 0x52 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
996         : ( ( 0x73 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) ) ) ? 4 : 0 ) : 0 )
997
998 /*
999         GCB_V: Grapheme_Cluster_Break=V
1000
1001         \p{_X_GCB_V}
1002 */
1003 /*** GENERATED CODE ***/
1004 #define is_GCB_V_utf8(s)                                                    \
1005 ( ( 0xBB == ((U8*)s)[0] ) ?                                                 \
1006     ( ( ( ((U8*)s)[1] & 0xFE ) == 0x52 ) ?                                  \
1007         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
1008     : ( ( 0x54 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
1009 : ( ( 0xDD == ((U8*)s)[0] ) && ( 0x64 == ((U8*)s)[1] ) ) ? ( ( 0x71 == ((U8*)s)[2] ) ?\
1010             ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
1011         : ( ( 0x72 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
1012
1013 /*
1014         UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
1015
1016         0xA0 - 0x3FFF
1017 */
1018 /*** GENERATED CODE ***/
1019 #define is_UTF8_CHAR_utf8_no_length_checks(s)                               \
1020 ( ( 0x80 == ((U8*)s)[0] || ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xAC ) || ( 0xAE <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xB6 ) ) ?\
1021     ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
1022 : ( ( ( ( ( ((U8*)s)[0] & 0xFC ) == 0xB8 ) || ((U8*)s)[0] == 0xBC || ( ( ((U8*)s)[0] & 0xFE ) == 0xBE ) || ( ( ((U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xCC ) ) && ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )
1023
1024 /*
1025         QUOTEMETA: Meta-characters that \Q should quote
1026
1027         \p{_Perl_Quotemeta}
1028 */
1029 /*** GENERATED CODE ***/
1030 #define is_QUOTEMETA_high(s)                                                \
1031 ( ( 0xB1 == ((U8*)s)[0] ) ?                                                 \
1032     ( ( 0x56 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
1033 : ( 0xB8 == ((U8*)s)[0] ) ?                                                 \
1034     ( ( ( 0x57 == ((U8*)s)[1] ) && ( 0x70 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
1035 : ( 0xBB == ((U8*)s)[0] ) ?                                                 \
1036     ( ( 0x51 == ((U8*)s)[1] ) ?                                             \
1037         ( ( 0x73 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
1038     : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
1039 : ( 0xBC == ((U8*)s)[0] ) ?                                                 \
1040     ( ( 0x63 == ((U8*)s)[1] ) ?                                             \
1041         ( ( 0x41 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
1042     : ( ( 0x71 == ((U8*)s)[1] ) && ( 0x63 == ((U8*)s)[2] || 0x64 == ((U8*)s)[2] ) ) ? 3 : 0 )\
1043 : ( 0xBE == ((U8*)s)[0] ) ?                                                 \
1044     ( ( ( 0x41 == ((U8*)s)[1] ) && ( 0x52 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
1045 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
1046     ( ( 0x41 == ((U8*)s)[1] || ( 0x54 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ?\
1047         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
1048     : ( 0x42 == ((U8*)s)[1] ) ?                                             \
1049         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1050     : ( 0x43 == ((U8*)s)[1] ) ?                                             \
1051         ( ( ( 0x42 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x62 == ((U8*)s)[2] || ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
1052     : ( 0x44 == ((U8*)s)[1] ) ?                                             \
1053         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
1054     : ( ( 0x53 == ((U8*)s)[1] ) && ( ( 0x57 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
1055 : ( 0xCB == ((U8*)s)[0] ) ?                                                 \
1056     ( ( ( ( ((U8*)s)[1] & 0xE7 ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ((U8*)s)[1] == 0x4A || ( ( ((U8*)s)[1] & 0xFC ) == 0x54 ) || ((U8*)s)[1] == 0x58 || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ((U8*)s)[1] == 0x71 ) ?\
1057         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
1058     : ( 0x6A == ((U8*)s)[1] ) ?                                             \
1059         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x64 ) ) ? 3 : 0 )\
1060     : ( ( 0x70 == ((U8*)s)[1] ) && ( ( 0x63 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
1061 : ( 0xCC == ((U8*)s)[0] ) ?                                                 \
1062     ( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
1063 : ( 0xCD == ((U8*)s)[0] ) ?                                                 \
1064     ( ( ( ( 0x57 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x62 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
1065 : ( 0xCE == ((U8*)s)[0] ) ?                                                 \
1066     ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
1067         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) || ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
1068     : ( 0x42 == ((U8*)s)[1] ) ?                                             \
1069         ( ( 0x41 == ((U8*)s)[2] || 0x57 == ((U8*)s)[2] ) ? 3 : 0 )          \
1070     : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x45 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
1071 : ( 0xDD == ((U8*)s)[0] ) ?                                                 \
1072     ( ( 0x73 == ((U8*)s)[1] ) ?                                             \
1073         ( ( 0x4A == ((U8*)s)[2] ) ?                                         \
1074             ( ( ( ((U8*)s)[3] & 0xFE ) == 0x72 ) ? 4 : 0 )                  \
1075         : ( 0x57 == ((U8*)s)[2] ) ?                                         \
1076             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
1077         : ( 0x59 == ((U8*)s)[2] ) ?                                         \
1078             ( ( ( ((U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 )                  \
1079         : ( 0x66 == ((U8*)s)[2] ) ?                                         \
1080             ( ( 0x73 == ((U8*)s)[3] ) ? 4 : 0 )                             \
1081         : ( 0x71 == ((U8*)s)[2] ) ?                                         \
1082             ( ( 0x41 == ((U8*)s)[3] ) ? 4 : 0 )                             \
1083         : ( ( 0x73 == ((U8*)s)[2] ) && ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x67 ) ) ) ? 4 : 0 )\
1084     : 0 )                                                                   \
1085 : ( 0xDF == ((U8*)s)[0] ) ?                                                 \
1086     ( ( 0x56 == ((U8*)s)[1] ) ?                                             \
1087         ( ( ( 0x46 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
1088     : ( ( ( 0x63 == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) && ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) ) ? 4 : 0 )\
1089 : ( ( ( ( ( 0xED == ((U8*)s)[0] ) && ( 0x70 == ((U8*)s)[1] ) ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( ((U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x6A ) || ( ((U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )
1090
1091 /*
1092         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1093
1094         &regcharclass_multi_char_folds::multi_char_folds(1)
1095 */
1096 /*** GENERATED CODE ***/
1097 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
1098 ( ( 0x81 == ((U8*)s)[0] ) ?                                                 \
1099         ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1100     : ( 0x86 == ((U8*)s)[0] ) ?                                             \
1101         ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
1102             ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
1103         : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
1104     : ( 0x88 == ((U8*)s)[0] ) ?                                             \
1105         ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1106     : ( 0x89 == ((U8*)s)[0] ) ?                                             \
1107         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1108     : ( 0x8F == ((U8*)s)[0] ) ?                                             \
1109         ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x8F == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1110     : ( 0x91 == ((U8*)s)[0] ) ?                                             \
1111         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1112     : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
1113         ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
1114     : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
1115         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1116     : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
1117         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1118     : ( 0xAB == ((U8*)s)[0] ) ?                                             \
1119         ( ( ( 0x70 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1120     : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
1121         ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ?                  \
1122             ( ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1123         : ( 0x58 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ?                  \
1124             ( ( 0xB1 == ((U8*)s)[2] ) ?                                     \
1125                 ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
1126             : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1127         : ( ( ( 0x68 == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1128     : ( 0xB5 == ((U8*)s)[0] ) ?                                             \
1129         ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
1130             ( ( ( 0xAF == ((U8*)s)[2] ) && ( 0x62 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1131         : ( 0x46 == ((U8*)s)[1] ) ?                                         \
1132             ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
1133                 ( ( 0x62 == ((U8*)s)[3] ) ? 4 : 0 )                         \
1134             : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1135         : ( 0x4A == ((U8*)s)[1] ) ?                                         \
1136             ( ( 0xB1 == ((U8*)s)[2] ) ?                                     \
1137                 ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
1138             : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1139         : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB4 == ((U8*)s)[2] ) ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1140     : ( 0xBF == ((U8*)s)[0] ) ?                                             \
1141         ( ( 0x67 == ((U8*)s)[1] || 0x68 == ((U8*)s)[1] ) ?                  \
1142             ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
1143         : ( ( ( ( 0x6A == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x63 == ((U8*)s)[2] || 0x70 == ((U8*)s)[2] ) ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
1144     : 0 )
1145
1146
1147 /*** GENERATED CODE ***/
1148 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
1149 ( ((e)-(s) > 3) ?                                                           \
1150     ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
1151         ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1152     : ( 0x86 == ((U8*)s)[0] ) ?                                             \
1153         ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
1154             ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
1155         : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
1156     : ( 0x88 == ((U8*)s)[0] ) ?                                             \
1157         ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1158     : ( 0x89 == ((U8*)s)[0] ) ?                                             \
1159         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1160     : ( 0x8F == ((U8*)s)[0] ) ?                                             \
1161         ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x8F == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1162     : ( 0x91 == ((U8*)s)[0] ) ?                                             \
1163         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1164     : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
1165         ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
1166     : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
1167         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1168     : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
1169         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1170     : ( 0xAB == ((U8*)s)[0] ) ?                                             \
1171         ( ( ( 0x70 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1172     : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
1173         ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ?                  \
1174             ( ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1175         : ( 0x58 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ?                  \
1176             ( ( 0xB1 == ((U8*)s)[2] ) ?                                     \
1177                 ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
1178             : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1179         : ( ( ( 0x68 == ((U8*)s)[1] ) && ( 0xB1 == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1180     : ( 0xB5 == ((U8*)s)[0] ) ?                                             \
1181         ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
1182             ( ( ( 0xAF == ((U8*)s)[2] ) && ( 0x62 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1183         : ( 0x46 == ((U8*)s)[1] ) ?                                         \
1184             ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
1185                 ( ( 0x62 == ((U8*)s)[3] ) ? 4 : 0 )                         \
1186             : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1187         : ( 0x4A == ((U8*)s)[1] ) ?                                         \
1188             ( ( 0xB1 == ((U8*)s)[2] ) ?                                     \
1189                 ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
1190             : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1191         : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB4 == ((U8*)s)[2] ) ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1192     : 0 )                                                                   \
1193 : ((e)-(s) > 2) ?                                                           \
1194     ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
1195         ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1196     : ( 0x86 == ((U8*)s)[0] ) ?                                             \
1197         ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
1198             ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
1199         : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
1200     : ( 0x88 == ((U8*)s)[0] ) ?                                             \
1201         ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1202     : ( 0x89 == ((U8*)s)[0] ) ?                                             \
1203         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1204     : ( 0x91 == ((U8*)s)[0] ) ?                                             \
1205         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1206     : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
1207         ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
1208     : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
1209         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1210     : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
1211         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1212     : ( ( ( 0xAB == ((U8*)s)[0] ) && ( 0x70 == ((U8*)s)[1] ) ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )\
1213 : ((e)-(s) > 1) ?                                                           \
1214     ( ( 0x86 == ((U8*)s)[0] ) ?                                             \
1215         ( ( 0x86 == ((U8*)s)[1] || 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )\
1216     : ( ( 0xA2 == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
1217 : 0 )
1218
1219
1220 /*** GENERATED CODE ***/
1221 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
1222 ( ((e)-(s) > 5) ?                                                           \
1223     ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
1224         ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1225     : ( 0x86 == ((U8*)s)[0] ) ?                                             \
1226         ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
1227             ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
1228         : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
1229     : ( 0x88 == ((U8*)s)[0] ) ?                                             \
1230         ( ( ( 0xB0 == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1231     : ( 0x89 == ((U8*)s)[0] ) ?                                             \
1232         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1233     : ( 0x8F == ((U8*)s)[0] ) ?                                             \
1234         ( ( ( ( 0x73 == ((U8*)s)[1] ) && ( 0x8F == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1235     : ( 0x91 == ((U8*)s)[0] ) ?                                             \
1236         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1237     : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
1238         ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
1239     : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
1240         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1241     : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
1242         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1243     : ( 0xAB == ((U8*)s)[0] ) ?                                             \
1244         ( ( ( 0x70 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1245     : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
1246         ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ?                  \
1247             ( ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1248         : ( 0x58 == ((U8*)s)[1] || 0x66 == ((U8*)s)[1] ) ?                  \
1249             ( ( 0xB1 == ((U8*)s)[2] ) ?                                     \
1250                 ( ( 0x43 == ((U8*)s)[3] ) ?                                 \
1251                     ( ( ( 0xB4 == ((U8*)s)[4] ) && ( 0x68 == ((U8*)s)[5] ) ) ? 6 : 4 )\
1252                 : 0 )                                                       \
1253             : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1254         : ( 0x68 == ((U8*)s)[1] ) ?                                         \
1255             ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
1256                 ( ( 0x49 == ((U8*)s)[3] ) ?                                 \
1257                     ( ( 0xAF == ((U8*)s)[4] ) ?                             \
1258                         ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
1259                     : ( ( 0xB1 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
1260                 : 0 )                                                       \
1261             : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1262         : 0 )                                                               \
1263     : ( 0xB5 == ((U8*)s)[0] ) ?                                             \
1264         ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
1265             ( ( ( 0xAF == ((U8*)s)[2] ) && ( 0x62 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1266         : ( 0x46 == ((U8*)s)[1] ) ?                                         \
1267             ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
1268                 ( ( 0x49 == ((U8*)s)[3] ) ?                                 \
1269                     ( ( 0xAF == ((U8*)s)[4] ) ?                             \
1270                         ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
1271                     : ( ( 0xB1 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
1272                 : ( 0x62 == ((U8*)s)[3] ) ?                                 \
1273                     ( ( 0xAF == ((U8*)s)[4] ) ?                             \
1274                         ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 4 )\
1275                     : ( ( 0xB1 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 4 )\
1276                 : 0 )                                                       \
1277             : ( ( 0xB1 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1278         : ( 0x4A == ((U8*)s)[1] ) ?                                         \
1279             ( ( 0xB1 == ((U8*)s)[2] ) ?                                     \
1280                 ( ( 0x43 == ((U8*)s)[3] ) ?                                 \
1281                     ( ( ( 0xB4 == ((U8*)s)[4] ) && ( 0x68 == ((U8*)s)[5] ) ) ? 6 : 4 )\
1282                 : 0 )                                                       \
1283             : ( ( 0xB4 == ((U8*)s)[2] ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1284         : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB4 == ((U8*)s)[2] ) ) && ( 0x68 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1285     : ( 0xB8 == ((U8*)s)[0] ) ?                                             \
1286         ( ( 0x52 == ((U8*)s)[1] ) ?                                         \
1287             ( ( 0x46 == ((U8*)s)[2] ) ?                                     \
1288                 ( ( ( ( 0xB8 == ((U8*)s)[3] ) && ( 0x53 == ((U8*)s)[4] ) ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
1289             : ( 0x63 == ((U8*)s)[2] ) ?                                     \
1290                 ( ( ( ( 0xB8 == ((U8*)s)[3] ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x46 == ((U8*)s)[5] || 0x52 == ((U8*)s)[5] || 0x54 == ((U8*)s)[5] || 0x65 == ((U8*)s)[5] ) ) ? 6 : 0 )\
1291             : ( ( ( ( 0x72 == ((U8*)s)[2] ) && ( 0xB8 == ((U8*)s)[3] ) ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x65 == ((U8*)s)[5] ) ) ? 6 : 0 )\
1292         : 0 )                                                               \
1293     : ( 0xBF == ((U8*)s)[0] ) ?                                             \
1294         ( ( 0x67 == ((U8*)s)[1] || 0x68 == ((U8*)s)[1] ) ?                  \
1295             ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
1296         : ( ( ( ( 0x6A == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x63 == ((U8*)s)[2] || 0x70 == ((U8*)s)[2] ) ) && ( 0xB4 == ((U8*)s)[3] ) ) && ( 0x68 == ((U8*)s)[4] ) ) ? 5 : 0 )\
1297     : 0 )                                                                   \
1298 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
1299
1300 /*
1301         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1302
1303         &regcharclass_multi_char_folds::multi_char_folds(0)
1304 */
1305 /*** GENERATED CODE ***/
1306 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
1307 ( ((e)-(s) > 2) ?                                                           \
1308     ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ?                                  \
1309         ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) ?                              \
1310             ( ( ( ( ((U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1311         : ( ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1312     : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1313 : ((e)-(s) > 1) ?                                                           \
1314     ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ?                                  \
1315         ( ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1316     : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1317 : 0 )
1318
1319 /*
1320         FOLDS_TO_MULTI: characters that fold to multi-char strings
1321
1322         \p{_Perl_Folds_To_Multi_Char}
1323 */
1324 /*** GENERATED CODE ***/
1325 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
1326 ( ( 0x8A == ((U8*)s)[0] ) ?                                                 \
1327     ( ( 0x73 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
1328 : ( 0x8D == ((U8*)s)[0] || 0x9C == ((U8*)s)[0] || ( 0xB3 == ((U8*)s)[0] || 0xB4 == ((U8*)s)[0] ) ) ?\
1329     ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
1330 : ( 0x8E == ((U8*)s)[0] ) ?                                                 \
1331     ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
1332 : ( 0xB8 == ((U8*)s)[0] ) ?                                                 \
1333     ( ( ( 0x53 == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
1334 : ( 0xBF == ((U8*)s)[0] ) ?                                                 \
1335     ( ( 0x63 == ((U8*)s)[1] ) ?                                             \
1336         ( ( ( 0x65 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || 0x72 == ((U8*)s)[2] ) ? 3 : 0 )\
1337     : ( 0x69 == ((U8*)s)[1] ) ?                                             \
1338         ( ( 0x57 == ((U8*)s)[2] || 0x59 == ((U8*)s)[2] || 0x63 == ((U8*)s)[2] || 0x65 == ((U8*)s)[2] ) ? 3 : 0 )\
1339     : ( 0x70 == ((U8*)s)[1] ) ?                                             \
1340         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
1341     : ( 0x71 == ((U8*)s)[1] ) ?                                             \
1342         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) || 0x59 == ((U8*)s)[2] || ( ((U8*)s)[2] & 0xFE ) == 0x62 || ( 0x65 == ((U8*)s)[2] || 0x66 == ((U8*)s)[2] ) || 0x70 == ((U8*)s)[2] ) ? 3 : 0 )\
1343     : ( 0x72 == ((U8*)s)[1] ) ?                                             \
1344         ( ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x53 || ((U8*)s)[2] == 0x59 || ( ( ((U8*)s)[2] & 0xFB ) == 0x62 ) || ((U8*)s)[2] == 0x65 ) ? 3 : 0 )\
1345     : ( ( 0x73 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x59 || ( ( ((U8*)s)[2] & 0xFE ) == 0x62 ) || ((U8*)s)[2] == 0x65 || ((U8*)s)[2] == 0x66 || ((U8*)s)[2] == 0x70 ) ) ? 3 : 0 )\
1346 : ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x67 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )
1347
1348 /*
1349         PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1350
1351         \p{_Perl_Problematic_Locale_Folds}
1352 */
1353 /*** GENERATED CODE ***/
1354 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
1355 ( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
1356 : ( 0x80 == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0x8A ) ?               \
1357     ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
1358 : ( 0x8D == ((U8*)s)[0] || 0x9C == ((U8*)s)[0] ) ?                          \
1359     ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
1360 : ( 0x8E == ((U8*)s)[0] ) ?                                                 \
1361     ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
1362 : ( 0x8F == ((U8*)s)[0] ) ?                                                 \
1363     ( ( 0x67 == ((U8*)s)[1] || 0x73 == ((U8*)s)[1] ) ? 2 : 0 )              \
1364 : ( 0xB3 == ((U8*)s)[0] || 0xB4 == ((U8*)s)[0] ) ?                          \
1365     ( ( 0x70 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
1366 : ( 0xBF == ((U8*)s)[0] ) ?                                                 \
1367     ( ( ( 0x63 == ((U8*)s)[1] ) && ( ( 0x65 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )\
1368 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
1369     ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
1370 : ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x67 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
1371
1372 /*** GENERATED CODE ***/
1373 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
1374 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1375 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1376 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1377 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1378 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1379 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1380 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1381 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1382 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
1383 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1384 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1385 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1386
1387 /*
1388         PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1389
1390         \p{_Perl_Problematic_Locale_Foldeds_Start}
1391 */
1392 /*** GENERATED CODE ***/
1393 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
1394 ( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
1395 : ( 0x80 == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0x8A ) ?               \
1396     ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( ((U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
1397 : ( 0x8D == ((U8*)s)[0] || 0x9C == ((U8*)s)[0] ) ?                          \
1398     ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
1399 : ( 0x8E == ((U8*)s)[0] ) ?                                                 \
1400     ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
1401 : ( 0x8F == ((U8*)s)[0] ) ?                                                 \
1402     ( ( 0x67 == ((U8*)s)[1] || 0x73 == ((U8*)s)[1] ) ? 2 : 0 )              \
1403 : ( 0xAB == ((U8*)s)[0] || ( 0xB3 == ((U8*)s)[0] || 0xB4 == ((U8*)s)[0] ) ) ?\
1404     ( ( 0x70 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
1405 : ( 0xBF == ((U8*)s)[0] ) ?                                                 \
1406     ( ( ( 0x63 == ((U8*)s)[1] ) && ( ( 0x65 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )\
1407 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
1408     ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
1409 : ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x67 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
1410
1411 /*** GENERATED CODE ***/
1412 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
1413 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1414 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1415 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1416 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1417 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1418 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1419 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
1420 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1421 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1422 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
1423 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1424 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1425 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1426
1427 /*
1428         PATWS: pattern white space
1429
1430         \p{PatWS}
1431 */
1432 /*** GENERATED CODE ***/
1433 #define is_PATWS_safe(s,e,is_utf8)                                          \
1434 ( ( LIKELY((e) > (s)) ) ?                                                   \
1435     ( ( ( ( ((U8*)s)[0] & 0xEF ) == 0x05 ) || ((U8*)s)[0] == 0x0B || ( ( ((U8*)s)[0] & 0xFE ) == 0x0C ) || ((U8*)s)[0] == 0x25 || ((U8*)s)[0] == 0x40 ) ? 1\
1436     : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((U8*)s)[0] ) ) ? ( ( 0x41 == ((U8*)s)[1] ) ?\
1437                     ( ( 0x55 == ((U8*)s)[2] || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
1438                 : ( ( 0x42 == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
1439 : 0 )
1440
1441 /*** GENERATED CODE ***/
1442 #define is_PATWS_cp(cp)                                                     \
1443 ( 0x05 == cp || ( 0x05 < cp &&                                              \
1444 ( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
1445 ( 0x15 == cp || ( 0x15 < cp &&                                              \
1446 ( 0x25 == cp || ( 0x25 < cp &&                                              \
1447 ( 0x40 == cp || ( 0x40 < cp &&                                              \
1448 ( 0x200E == cp || ( 0x200E < cp &&                                          \
1449 ( 0x200F == cp || ( 0x200F < cp &&                                          \
1450 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1451
1452 #endif  /* EBCDIC 1047 */
1453
1454 #if 'A' == 193 /* EBCDIC 037 */ \
1455      && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
1456      && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
1457      && '$' == 91 && '@' == 124 && '`' == 121
1458 /*
1459         LNBREAK: Line Break: \R
1460
1461         "\x0D\x0A"      # CRLF - Network (Windows) line ending
1462         \p{VertSpace}
1463 */
1464 /*** GENERATED CODE ***/
1465 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
1466 ( ((e)-(s) > 2) ?                                                           \
1467     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
1468     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
1469         ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
1470     : ( ( ( ( is_utf8 ) && ( 0xCA == ((U8*)s)[0] ) ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
1471 : ((e)-(s) > 1) ?                                                           \
1472     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
1473     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
1474         ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
1475     : 0 )                                                                   \
1476 : ((e)-(s) > 0) ?                                                           \
1477     ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
1478 : 0 )
1479
1480 /*** GENERATED CODE ***/
1481 #define is_LNBREAK_utf8_safe(s,e)                                           \
1482 ( ((e)-(s) > 2) ?                                                           \
1483     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
1484     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
1485         ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
1486     : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )\
1487 : ((e)-(s) > 1) ?                                                           \
1488     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
1489     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
1490         ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
1491     : 0 )                                                                   \
1492 : ((e)-(s) > 0) ?                                                           \
1493     ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
1494 : 0 )
1495
1496 /*** GENERATED CODE ***/
1497 #define is_LNBREAK_latin1_safe(s,e)                                         \
1498 ( ((e)-(s) > 1) ?                                                           \
1499     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
1500     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
1501         ( ( 0x25 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
1502     : 0 )                                                                   \
1503 : ((e)-(s) > 0) ?                                                           \
1504     ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
1505 : 0 )
1506
1507 /*
1508         HORIZWS: Horizontal Whitespace: \h \H
1509
1510         \p{HorizSpace}
1511 */
1512 /*** GENERATED CODE ***/
1513 #define is_HORIZWS_high(s)                                                  \
1514 ( ( 0xBD == ((U8*)s)[0] ) ?                                                 \
1515     ( ( ( 0x62 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
1516 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
1517     ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
1518         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
1519     : ( 0x42 == ((U8*)s)[1] ) ?                                             \
1520         ( ( 0x56 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
1521     : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
1522 : ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
1523
1524 /*** GENERATED CODE ***/
1525 #define is_HORIZWS_cp_high(cp)                                              \
1526 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
1527 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
1528 ( 0x202F == cp || ( 0x202F < cp &&                                          \
1529 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
1530
1531 /*
1532         VERTWS: Vertical Whitespace: \v \V
1533
1534         \p{VertSpace}
1535 */
1536 /*** GENERATED CODE ***/
1537 #define is_VERTWS_high(s)                                                   \
1538 ( ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 )
1539
1540 /*** GENERATED CODE ***/
1541 #define is_VERTWS_cp_high(cp)                                               \
1542 ( 0x2028 == cp || 0x2029 == cp )
1543
1544 /*
1545         XDIGIT: Hexadecimal digits
1546
1547         \p{XDigit}
1548 */
1549 /*** GENERATED CODE ***/
1550 #define is_XDIGIT_high(s)                                                   \
1551 ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) ? ( ( 0x66 == ((U8*)s)[2] ) ?\
1552             ( ( ( ( ((U8*)s)[3] & 0xF7 ) == 0x57 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x58 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x62 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) ) ? 4 : 0 )\
1553         : ( ( 0x67 == ((U8*)s)[2] || 0x68 == ((U8*)s)[2] ) && ( 0x42 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
1554
1555 /*** GENERATED CODE ***/
1556 #define is_XDIGIT_cp_high(cp)                                               \
1557 ( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
1558 ( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
1559
1560 /*
1561         XPERLSPACE: \p{XPerlSpace}
1562
1563         \p{XPerlSpace}
1564 */
1565 /*** GENERATED CODE ***/
1566 #define is_XPERLSPACE_high(s)                                               \
1567 ( ( 0xBD == ((U8*)s)[0] ) ?                                                 \
1568     ( ( ( 0x62 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
1569 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
1570     ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
1571         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || 0x51 == ((U8*)s)[2] ) ? 3 : 0 )\
1572     : ( 0x42 == ((U8*)s)[1] ) ?                                             \
1573         ( ( ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
1574     : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
1575 : ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
1576
1577 /*** GENERATED CODE ***/
1578 #define is_XPERLSPACE_cp_high(cp)                                           \
1579 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
1580 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
1581 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
1582 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
1583 ( 0x202F == cp || ( 0x202F < cp &&                                          \
1584 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
1585
1586 /*
1587         REPLACEMENT: Unicode REPLACEMENT CHARACTER
1588
1589         0xFFFD
1590 */
1591 /*** GENERATED CODE ***/
1592 #define is_REPLACEMENT_utf8_safe(s,e)                                       \
1593 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((U8*)s)[0] ) ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x70 == ((U8*)s)[3] ) ) ? 4 : 0 )
1594
1595 /*
1596         NONCHAR: Non character code points
1597
1598         \p{Nchar}
1599 */
1600 /*** GENERATED CODE ***/
1601 #define is_NONCHAR_utf8(s)                                                  \
1602 ( ( 0xDD == ((U8*)s)[0] ) ?                                                 \
1603     ( ( 0x72 == ((U8*)s)[1] ) ?                                             \
1604         ( ( 0x55 == ((U8*)s)[2] ) ?                                         \
1605             ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
1606         : ( 0x56 == ((U8*)s)[2] ) ?                                         \
1607             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
1608         : ( ( 0x72 == ((U8*)s)[2] ) && ( 0x71 == ((U8*)s)[3] || 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1609     : 0 )                                                                   \
1610 : ( 0xDF == ((U8*)s)[0] || 0xEA == ((U8*)s)[0] || 0xEC == ((U8*)s)[0] ) ?   \
1611     ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x71 == ((U8*)s)[3] || 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1612 : ( 0xED == ((U8*)s)[0] ) ?                                                 \
1613     ( ( ( ( ( ((U8*)s)[1] == 0x4A || ((U8*)s)[1] == 0x52 || ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) || ((U8*)s)[1] == 0x58 || ((U8*)s)[1] == 0x5F || ((U8*)s)[1] == 0x63 || ( ( ((U8*)s)[1] & 0xFD ) == 0x65 ) || ((U8*)s)[1] == 0x69 || ( ( ((U8*)s)[1] & 0xFD ) == 0x70 ) ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) && ( 0x71 == ((U8*)s)[4] || 0x72 == ((U8*)s)[4] ) ) ? 5 : 0 )\
1614 : ( ( ( ( ( 0xEE == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x72 == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) && ( 0x71 == ((U8*)s)[4] || 0x72 == ((U8*)s)[4] ) ) ? 5 : 0 )
1615
1616 /*
1617         SURROGATE: Surrogate characters
1618
1619         \p{Gc=Cs}
1620 */
1621 /*** GENERATED CODE ***/
1622 #define is_SURROGATE_utf8(s)                                                \
1623 ( ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0x64 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
1624
1625 /*
1626         GCB_L: Grapheme_Cluster_Break=L
1627
1628         \p{_X_GCB_L}
1629 */
1630 /*** GENERATED CODE ***/
1631 #define is_GCB_L_utf8(s)                                                    \
1632 ( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
1633     ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || 0x51 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1634 : ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x51 == ((U8*)s)[1] ) ) && ( 0x52 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) ) ) ? 4 : 0 )
1635
1636 /*
1637         GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
1638
1639         \p{_X_LV_LVT_V}
1640 */
1641 /*** GENERATED CODE ***/
1642 #define is_GCB_LV_LVT_V_utf8(s)                                             \
1643 ( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
1644     ( ( ( ((U8*)s)[1] & 0xFE ) == 0x52 ) ?                                  \
1645         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1646     : ( ( 0x54 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
1647 : ( 0xDD == ((U8*)s)[0] ) ?                                                 \
1648     ( ( ( 0x52 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || 0x62 == ((U8*)s)[1] ) ?\
1649         ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
1650     : ( 0x63 == ((U8*)s)[1] ) ?                                             \
1651         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) ) ?\
1652             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
1653         : ( 0x70 == ((U8*)s)[2] ) ?                                         \
1654             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
1655         : ( ( 0x71 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )\
1656     : 0 )                                                                   \
1657 : 0 )
1658
1659 /*
1660         GCB_Prepend: Grapheme_Cluster_Break=Prepend
1661
1662         \p{_X_GCB_Prepend}
1663 */
1664 /*** GENERATED CODE ***/
1665 #define is_GCB_Prepend_utf8(s)                                              \
1666 ( 0 )
1667
1668 /*
1669         GCB_RI: Grapheme_Cluster_Break=RI
1670
1671         \p{_X_RI}
1672 */
1673 /*** GENERATED CODE ***/
1674 #define is_GCB_RI_utf8(s)                                                   \
1675 ( ( ( ( ( 0xDF == ((U8*)s)[0] ) && ( 0x6A == ((U8*)s)[1] ) ) && ( 0x56 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
1676
1677 /*
1678         GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
1679
1680         \p{_X_Special_Begin_Start}
1681 */
1682 /*** GENERATED CODE ***/
1683 #define is_GCB_SPECIAL_BEGIN_START_utf8(s)                                  \
1684 ( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
1685     ( ( ( ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x56 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1686 : ( 0xDD == ((U8*)s)[0] ) ?                                                 \
1687     ( ( 0x51 == ((U8*)s)[1] ) ?                                             \
1688         ( ( ( 0x52 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) ) ) ? 4 : 0 )\
1689     : ( ( 0x52 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || 0x62 == ((U8*)s)[1] ) ?\
1690         ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
1691     : ( 0x63 == ((U8*)s)[1] ) ?                                             \
1692         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) ) ?\
1693             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
1694         : ( 0x70 == ((U8*)s)[2] ) ?                                         \
1695             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
1696         : ( 0x71 == ((U8*)s)[2] ) ?                                         \
1697             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x52 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
1698         : ( ( 0x72 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) ) ) ? 4 : 0 )\
1699     : 0 )                                                                   \
1700 : ( ( ( ( 0xDF == ((U8*)s)[0] ) && ( 0x6A == ((U8*)s)[1] ) ) && ( 0x56 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
1701
1702 /*
1703         GCB_T: Grapheme_Cluster_Break=T
1704
1705         \p{_X_GCB_T}
1706 */
1707 /*** GENERATED CODE ***/
1708 #define is_GCB_T_utf8(s)                                                    \
1709 ( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
1710     ( ( 0x54 == ((U8*)s)[1] ) ?                                             \
1711         ( ( ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1712     : ( ( 0x55 == ((U8*)s)[1] || 0x56 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1713 : ( ( 0xDD == ((U8*)s)[0] ) && ( 0x63 == ((U8*)s)[1] ) ) ? ( ( 0x71 == ((U8*)s)[2] ) ?\
1714             ( ( ( 0x52 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
1715         : ( ( 0x72 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) ) ) ? 4 : 0 ) : 0 )
1716
1717 /*
1718         GCB_V: Grapheme_Cluster_Break=V
1719
1720         \p{_X_GCB_V}
1721 */
1722 /*** GENERATED CODE ***/
1723 #define is_GCB_V_utf8(s)                                                    \
1724 ( ( 0xBC == ((U8*)s)[0] ) ?                                                 \
1725     ( ( ( ((U8*)s)[1] & 0xFE ) == 0x52 ) ?                                  \
1726         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1727     : ( ( 0x54 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
1728 : ( ( 0xDD == ((U8*)s)[0] ) && ( 0x63 == ((U8*)s)[1] ) ) ? ( ( 0x70 == ((U8*)s)[2] ) ?\
1729             ( ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
1730         : ( ( 0x71 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
1731
1732 /*
1733         UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
1734
1735         0xA0 - 0x3FFF
1736 */
1737 /*** GENERATED CODE ***/
1738 #define is_UTF8_CHAR_utf8_no_length_checks(s)                               \
1739 ( ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA0 ) || ( 0xAA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xAF ) || ( 0xB1 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xB5 ) ) ?\
1740     ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
1741 : ( ( ( ((U8*)s)[0] == 0xB7 || ( ( ((U8*)s)[0] & 0xFE ) == 0xB8 ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xBC ) || ( ( ((U8*)s)[0] & 0xEE ) == 0xCA ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xCC ) ) && ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )
1742
1743 /*
1744         QUOTEMETA: Meta-characters that \Q should quote
1745
1746         \p{_Perl_Quotemeta}
1747 */
1748 /*** GENERATED CODE ***/
1749 #define is_QUOTEMETA_high_part0(s)                                          \
1750 ( ( 0x51 == ((U8*)s)[1] ) ?                                                 \
1751         ( ( 0x72 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
1752     : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
1753
1754
1755 /*** GENERATED CODE ***/
1756 #define is_QUOTEMETA_high_part1(s)                                          \
1757 ( ( 0xBD == ((U8*)s)[0] ) ?                                                 \
1758     ( ( 0x62 == ((U8*)s)[1] ) ?                                             \
1759         ( ( 0x41 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
1760     : ( ( 0x70 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x62 ) ) ? 3 : 0 )\
1761 : ( 0xBE == ((U8*)s)[0] ) ?                                                 \
1762     ( ( ( 0x41 == ((U8*)s)[1] ) && ( 0x52 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
1763 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
1764     ( ( 0x41 == ((U8*)s)[1] || ( 0x54 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ?\
1765         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1766     : ( 0x42 == ((U8*)s)[1] ) ?                                             \
1767         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( ((U8*)s)[2] & 0xFE ) == 0x70 ) ? 3 : 0 )\
1768     : ( 0x43 == ((U8*)s)[1] ) ?                                             \
1769         ( ( ( 0x42 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x63 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1770     : ( 0x44 == ((U8*)s)[1] ) ?                                             \
1771         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
1772     : ( ( 0x53 == ((U8*)s)[1] ) && ( ( 0x57 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1773 : ( 0xCB == ((U8*)s)[0] ) ?                                                 \
1774     ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x43 ) || ( 0x49 == ((U8*)s)[1] || 0x4A == ((U8*)s)[1] ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x68 ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ?\
1775         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1776     : ( 0x69 == ((U8*)s)[1] ) ?                                             \
1777         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( ((U8*)s)[2] & 0xFE ) == 0x62 ) ? 3 : 0 )\
1778     : ( ( 0x6A == ((U8*)s)[1] ) && ( ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1779 : ( 0xCC == ((U8*)s)[0] ) ?                                                 \
1780     ( ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1781 : ( 0xCD == ((U8*)s)[0] ) ?                                                 \
1782     ( ( ( ( ( ((U8*)s)[1] & 0xF7 ) == 0x57 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x58 ) ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1783 : ( 0xCE == ((U8*)s)[0] ) ?                                                 \
1784     ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
1785         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) || ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1786     : ( 0x42 == ((U8*)s)[1] ) ?                                             \
1787         ( ( 0x41 == ((U8*)s)[2] || 0x57 == ((U8*)s)[2] ) ? 3 : 0 )          \
1788     : ( ( 0x52 == ((U8*)s)[1] ) && ( 0x45 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
1789 : ( 0xDD == ((U8*)s)[0] ) ?                                                 \
1790     ( ( 0x72 == ((U8*)s)[1] ) ?                                             \
1791         ( ( 0x4A == ((U8*)s)[2] ) ?                                         \
1792             ( ( 0x71 == ((U8*)s)[3] || 0x72 == ((U8*)s)[3] ) ? 4 : 0 )      \
1793         : ( 0x57 == ((U8*)s)[2] ) ?                                         \
1794             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
1795         : ( 0x59 == ((U8*)s)[2] ) ?                                         \
1796             ( ( ( ((U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 )                  \
1797         : ( 0x65 == ((U8*)s)[2] ) ?                                         \
1798             ( ( 0x72 == ((U8*)s)[3] ) ? 4 : 0 )                             \
1799         : ( 0x70 == ((U8*)s)[2] ) ?                                         \
1800             ( ( 0x41 == ((U8*)s)[3] ) ? 4 : 0 )                             \
1801         : ( ( 0x72 == ((U8*)s)[2] ) && ( ( 0x57 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )\
1802     : 0 )                                                                   \
1803 : ( 0xDF == ((U8*)s)[0] ) ?                                                 \
1804     ( ( 0x56 == ((U8*)s)[1] ) ?                                             \
1805         ( ( ( 0x46 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
1806     : ( ( ( 0x62 == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) && ( 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x68 ) ) ) ? 4 : 0 )\
1807 : ( ( ( ( ( 0xED == ((U8*)s)[0] ) && ( 0x6A == ((U8*)s)[1] ) ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x59 ) || 0x5F == ((U8*)s)[4] || ( 0x62 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((U8*)s)[4] && ((U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )
1808
1809
1810 /*** GENERATED CODE ***/
1811 #define is_QUOTEMETA_high(s)                                                \
1812 ( ( 0xAF == ((U8*)s)[0] ) ?                                                 \
1813     ( ( 0x56 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
1814 : ( 0xB7 == ((U8*)s)[0] ) ?                                                 \
1815     ( ( ( 0x57 == ((U8*)s)[1] ) && ( 0x6A == ((U8*)s)[2] ) ) ? 3 : 0 )      \
1816 : ( 0xBC == ((U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
1817
1818 /*
1819         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1820
1821         &regcharclass_multi_char_folds::multi_char_folds(1)
1822 */
1823 /*** GENERATED CODE ***/
1824 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
1825 ( ( 0x81 == ((U8*)s)[0] ) ?                                                 \
1826         ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1827     : ( 0x86 == ((U8*)s)[0] ) ?                                             \
1828         ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
1829             ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
1830         : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
1831     : ( 0x88 == ((U8*)s)[0] ) ?                                             \
1832         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1833     : ( 0x89 == ((U8*)s)[0] ) ?                                             \
1834         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1835     : ( 0x8E == ((U8*)s)[0] ) ?                                             \
1836         ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1837     : ( 0x91 == ((U8*)s)[0] ) ?                                             \
1838         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1839     : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
1840         ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
1841     : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
1842         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1843     : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
1844         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1845     : ( 0xAA == ((U8*)s)[0] ) ?                                             \
1846         ( ( ( 0x6A == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1847     : ( 0xB3 == ((U8*)s)[0] ) ?                                             \
1848         ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ?                  \
1849             ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1850         : ( 0x58 == ((U8*)s)[1] || 0x65 == ((U8*)s)[1] ) ?                  \
1851             ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
1852                 ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
1853             : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1854         : ( ( ( 0x67 == ((U8*)s)[1] ) && ( 0xAF == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1855     : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
1856         ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
1857             ( ( ( 0xAD == ((U8*)s)[2] ) && ( 0x5F == ((U8*)s)[3] ) ) ? 4 : 0 )\
1858         : ( 0x46 == ((U8*)s)[1] ) ?                                         \
1859             ( ( 0xAD == ((U8*)s)[2] ) ?                                     \
1860                 ( ( 0x5F == ((U8*)s)[3] ) ? 4 : 0 )                         \
1861             : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1862         : ( 0x4A == ((U8*)s)[1] ) ?                                         \
1863             ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
1864                 ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
1865             : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1866         : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1867     : ( 0xBF == ((U8*)s)[0] ) ?                                             \
1868         ( ( ( ((U8*)s)[1] & 0xFE ) == 0x66 ) ?                              \
1869             ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
1870         : ( ( ( ( 0x69 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || 0x6A == ((U8*)s)[2] ) ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
1871     : 0 )
1872
1873
1874 /*** GENERATED CODE ***/
1875 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
1876 ( ((e)-(s) > 3) ?                                                           \
1877     ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
1878         ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1879     : ( 0x86 == ((U8*)s)[0] ) ?                                             \
1880         ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
1881             ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
1882         : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
1883     : ( 0x88 == ((U8*)s)[0] ) ?                                             \
1884         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1885     : ( 0x89 == ((U8*)s)[0] ) ?                                             \
1886         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1887     : ( 0x8E == ((U8*)s)[0] ) ?                                             \
1888         ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1889     : ( 0x91 == ((U8*)s)[0] ) ?                                             \
1890         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1891     : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
1892         ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
1893     : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
1894         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1895     : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
1896         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1897     : ( 0xAA == ((U8*)s)[0] ) ?                                             \
1898         ( ( ( 0x6A == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1899     : ( 0xB3 == ((U8*)s)[0] ) ?                                             \
1900         ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ?                  \
1901             ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1902         : ( 0x58 == ((U8*)s)[1] || 0x65 == ((U8*)s)[1] ) ?                  \
1903             ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
1904                 ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
1905             : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1906         : ( ( ( 0x67 == ((U8*)s)[1] ) && ( 0xAF == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1907     : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
1908         ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
1909             ( ( ( 0xAD == ((U8*)s)[2] ) && ( 0x5F == ((U8*)s)[3] ) ) ? 4 : 0 )\
1910         : ( 0x46 == ((U8*)s)[1] ) ?                                         \
1911             ( ( 0xAD == ((U8*)s)[2] ) ?                                     \
1912                 ( ( 0x5F == ((U8*)s)[3] ) ? 4 : 0 )                         \
1913             : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1914         : ( 0x4A == ((U8*)s)[1] ) ?                                         \
1915             ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
1916                 ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
1917             : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1918         : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1919     : 0 )                                                                   \
1920 : ((e)-(s) > 2) ?                                                           \
1921     ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
1922         ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1923     : ( 0x86 == ((U8*)s)[0] ) ?                                             \
1924         ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
1925             ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
1926         : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
1927     : ( 0x88 == ((U8*)s)[0] ) ?                                             \
1928         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1929     : ( 0x89 == ((U8*)s)[0] ) ?                                             \
1930         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1931     : ( 0x91 == ((U8*)s)[0] ) ?                                             \
1932         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1933     : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
1934         ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
1935     : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
1936         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1937     : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
1938         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1939     : ( ( ( 0xAA == ((U8*)s)[0] ) && ( 0x6A == ((U8*)s)[1] ) ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )\
1940 : ((e)-(s) > 1) ?                                                           \
1941     ( ( 0x86 == ((U8*)s)[0] ) ?                                             \
1942         ( ( 0x86 == ((U8*)s)[1] || 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )\
1943     : ( ( 0xA2 == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
1944 : 0 )
1945
1946
1947 /*** GENERATED CODE ***/
1948 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
1949 ( ((e)-(s) > 5) ?                                                           \
1950     ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
1951         ( ( ( 0xAA == ((U8*)s)[1] ) && ( 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1952     : ( 0x86 == ((U8*)s)[0] ) ?                                             \
1953         ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
1954             ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
1955         : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
1956     : ( 0x88 == ((U8*)s)[0] ) ?                                             \
1957         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x58 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1958     : ( 0x89 == ((U8*)s)[0] ) ?                                             \
1959         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1960     : ( 0x8E == ((U8*)s)[0] ) ?                                             \
1961         ( ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x8E == ((U8*)s)[2] ) ) && ( 0x72 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1962     : ( 0x91 == ((U8*)s)[0] ) ?                                             \
1963         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1964     : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
1965         ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
1966     : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
1967         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1968     : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
1969         ( ( ( 0xAD == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1970     : ( 0xAA == ((U8*)s)[0] ) ?                                             \
1971         ( ( ( 0x6A == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
1972     : ( 0xB3 == ((U8*)s)[0] ) ?                                             \
1973         ( ( 0x53 == ((U8*)s)[1] || 0x55 == ((U8*)s)[1] ) ?                  \
1974             ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1975         : ( 0x58 == ((U8*)s)[1] || 0x65 == ((U8*)s)[1] ) ?                  \
1976             ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
1977                 ( ( 0x43 == ((U8*)s)[3] ) ?                                 \
1978                     ( ( ( 0xB3 == ((U8*)s)[4] ) && ( 0x67 == ((U8*)s)[5] ) ) ? 6 : 4 )\
1979                 : 0 )                                                       \
1980             : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1981         : ( 0x67 == ((U8*)s)[1] ) ?                                         \
1982             ( ( 0xAD == ((U8*)s)[2] ) ?                                     \
1983                 ( ( 0x49 == ((U8*)s)[3] ) ?                                 \
1984                     ( ( 0xAD == ((U8*)s)[4] ) ?                             \
1985                         ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
1986                     : ( ( 0xAF == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
1987                 : 0 )                                                       \
1988             : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
1989         : 0 )                                                               \
1990     : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
1991         ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
1992             ( ( ( 0xAD == ((U8*)s)[2] ) && ( 0x5F == ((U8*)s)[3] ) ) ? 4 : 0 )\
1993         : ( 0x46 == ((U8*)s)[1] ) ?                                         \
1994             ( ( 0xAD == ((U8*)s)[2] ) ?                                     \
1995                 ( ( 0x49 == ((U8*)s)[3] ) ?                                 \
1996                     ( ( 0xAD == ((U8*)s)[4] ) ?                             \
1997                         ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
1998                     : ( ( 0xAF == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
1999                 : ( 0x5F == ((U8*)s)[3] ) ?                                 \
2000                     ( ( 0xAD == ((U8*)s)[4] ) ?                             \
2001                         ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 4 )\
2002                     : ( ( 0xAF == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 4 )\
2003                 : 0 )                                                       \
2004             : ( ( 0xAF == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2005         : ( 0x4A == ((U8*)s)[1] ) ?                                         \
2006             ( ( 0xAF == ((U8*)s)[2] ) ?                                     \
2007                 ( ( 0x43 == ((U8*)s)[3] ) ?                                 \
2008                     ( ( ( 0xB3 == ((U8*)s)[4] ) && ( 0x67 == ((U8*)s)[5] ) ) ? 6 : 4 )\
2009                 : 0 )                                                       \
2010             : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2011         : ( ( ( 0x55 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x67 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2012     : ( 0xB7 == ((U8*)s)[0] ) ?                                             \
2013         ( ( 0x52 == ((U8*)s)[1] ) ?                                         \
2014             ( ( 0x46 == ((U8*)s)[2] ) ?                                     \
2015                 ( ( ( ( 0xB7 == ((U8*)s)[3] ) && ( 0x53 == ((U8*)s)[4] ) ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
2016             : ( 0x62 == ((U8*)s)[2] ) ?                                     \
2017                 ( ( ( ( 0xB7 == ((U8*)s)[3] ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x46 == ((U8*)s)[5] || 0x52 == ((U8*)s)[5] || 0x54 == ((U8*)s)[5] || 0x64 == ((U8*)s)[5] ) ) ? 6 : 0 )\
2018             : ( ( ( ( 0x71 == ((U8*)s)[2] ) && ( 0xB7 == ((U8*)s)[3] ) ) && ( 0x52 == ((U8*)s)[4] ) ) && ( 0x64 == ((U8*)s)[5] ) ) ? 6 : 0 )\
2019         : 0 )                                                               \
2020     : ( 0xBF == ((U8*)s)[0] ) ?                                             \
2021         ( ( ( ((U8*)s)[1] & 0xFE ) == 0x66 ) ?                              \
2022             ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
2023         : ( ( ( ( 0x69 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x57 == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || 0x6A == ((U8*)s)[2] ) ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x67 == ((U8*)s)[4] ) ) ? 5 : 0 )\
2024     : 0 )                                                                   \
2025 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
2026
2027 /*
2028         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
2029
2030         &regcharclass_multi_char_folds::multi_char_folds(0)
2031 */
2032 /*** GENERATED CODE ***/
2033 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
2034 ( ((e)-(s) > 2) ?                                                           \
2035     ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ?                                  \
2036         ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) ?                              \
2037             ( ( ( ( ((U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
2038         : ( ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
2039     : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
2040 : ((e)-(s) > 1) ?                                                           \
2041     ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ?                                  \
2042         ( ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
2043     : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
2044 : 0 )
2045
2046 /*
2047         FOLDS_TO_MULTI: characters that fold to multi-char strings
2048
2049         \p{_Perl_Folds_To_Multi_Char}
2050 */
2051 /*** GENERATED CODE ***/
2052 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
2053 ( ( 0x80 == ((U8*)s)[0] ) ?                                                 \
2054     ( ( 0x72 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2055 : ( 0x8C == ((U8*)s)[0] || 0x9B == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?\
2056     ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2057 : ( 0x8D == ((U8*)s)[0] ) ?                                                 \
2058     ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2059 : ( 0xB7 == ((U8*)s)[0] ) ?                                                 \
2060     ( ( ( 0x53 == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
2061 : ( 0xBF == ((U8*)s)[0] ) ?                                                 \
2062     ( ( 0x62 == ((U8*)s)[1] ) ?                                             \
2063         ( ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x68 ) || 0x71 == ((U8*)s)[2] ) ? 3 : 0 )\
2064     : ( 0x68 == ((U8*)s)[1] ) ?                                             \
2065         ( ( 0x57 == ((U8*)s)[2] || 0x59 == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || 0x64 == ((U8*)s)[2] ) ? 3 : 0 )\
2066     : ( 0x6A == ((U8*)s)[1] ) ?                                             \
2067         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || 0x5F == ((U8*)s)[2] || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
2068     : ( 0x70 == ((U8*)s)[1] ) ?                                             \
2069         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) || 0x59 == ((U8*)s)[2] || 0x5F == ((U8*)s)[2] || 0x62 == ((U8*)s)[2] || ( ((U8*)s)[2] & 0xFE ) == 0x64 || 0x6A == ((U8*)s)[2] ) ? 3 : 0 )\
2070     : ( 0x71 == ((U8*)s)[1] ) ?                                             \
2071         ( ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xDE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x53 || ((U8*)s)[2] == 0x59 || ((U8*)s)[2] == 0x5F ) ? 3 : 0 )\
2072     : ( ( 0x72 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xDE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x59 || ((U8*)s)[2] == 0x5F || ( ( ((U8*)s)[2] & 0xF7 ) == 0x62 ) ) ) ? 3 : 0 )\
2073 : ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x71 == ((U8*)s)[1] ) ) && ( 0x66 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || 0x5F == ((U8*)s)[3] || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x65 ) ) ) ? 4 : 0 )
2074
2075 /*
2076         PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
2077
2078         \p{_Perl_Problematic_Locale_Folds}
2079 */
2080 /*** GENERATED CODE ***/
2081 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
2082 ( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x5C ) || ((U8*)s)[0] == 0x5E || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x6C ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ((U8*)s)[0] == 0xB0 || ( ( ((U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
2083 : ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || 0x8A == ((U8*)s)[0] ) ?   \
2084     ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
2085 : ( 0x8C == ((U8*)s)[0] || 0x9B == ((U8*)s)[0] ) ?                          \
2086     ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2087 : ( 0x8D == ((U8*)s)[0] ) ?                                                 \
2088     ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2089 : ( 0x8E == ((U8*)s)[0] ) ?                                                 \
2090     ( ( 0x66 == ((U8*)s)[1] || 0x72 == ((U8*)s)[1] ) ? 2 : 0 )              \
2091 : ( ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?                                      \
2092     ( ( 0x6A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2093 : ( 0xBF == ((U8*)s)[0] ) ?                                                 \
2094     ( ( ( 0x62 == ((U8*)s)[1] ) && ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x68 ) || 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )\
2095 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
2096     ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
2097 : ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x71 == ((U8*)s)[1] ) ) && ( 0x66 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
2098
2099 /*** GENERATED CODE ***/
2100 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
2101 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
2102 ( 0x130 == cp || ( 0x130 < cp &&                                            \
2103 ( 0x149 == cp || ( 0x149 < cp &&                                            \
2104 ( 0x178 == cp || ( 0x178 < cp &&                                            \
2105 ( 0x17F == cp || ( 0x17F < cp &&                                            \
2106 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
2107 ( 0x39C == cp || ( 0x39C < cp &&                                            \
2108 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
2109 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
2110 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
2111 ( 0x212A == cp || ( 0x212A < cp &&                                          \
2112 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
2113
2114 /*
2115         PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
2116
2117         \p{_Perl_Problematic_Locale_Foldeds_Start}
2118 */
2119 /*** GENERATED CODE ***/
2120 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
2121 ( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x5C ) || ((U8*)s)[0] == 0x5E || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x6C ) || ((U8*)s)[0] == 0x79 || ( ( ((U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ((U8*)s)[0] == 0xA1 || ( ( ((U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ((U8*)s)[0] == 0xB0 || ( ( ((U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ((U8*)s)[0] == 0xE0 || ( ( ((U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((U8*)s)[0] == 0xFF ) ? 1\
2122 : ( 0x78 == ((U8*)s)[0] || 0x80 == ((U8*)s)[0] || 0x8A == ((U8*)s)[0] ) ?   \
2123     ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || 0x5F == ((U8*)s)[1] || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
2124 : ( 0x8C == ((U8*)s)[0] || 0x9B == ((U8*)s)[0] ) ?                          \
2125     ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2126 : ( 0x8D == ((U8*)s)[0] ) ?                                                 \
2127     ( ( 0x4A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2128 : ( 0x8E == ((U8*)s)[0] ) ?                                                 \
2129     ( ( 0x66 == ((U8*)s)[1] || 0x72 == ((U8*)s)[1] ) ? 2 : 0 )              \
2130 : ( 0xAA == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?               \
2131     ( ( 0x6A == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2132 : ( 0xBF == ((U8*)s)[0] ) ?                                                 \
2133     ( ( ( 0x62 == ((U8*)s)[1] ) && ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x68 ) || 0x71 == ((U8*)s)[2] ) ) ? 3 : 0 )\
2134 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
2135     ( ( ( 0x4A == ((U8*)s)[1] ) && ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
2136 : ( ( ( ( 0xDD == ((U8*)s)[0] ) && ( 0x71 == ((U8*)s)[1] ) ) && ( 0x66 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
2137
2138 /*** GENERATED CODE ***/
2139 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
2140 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
2141 ( 0x130 == cp || ( 0x130 < cp &&                                            \
2142 ( 0x149 == cp || ( 0x149 < cp &&                                            \
2143 ( 0x178 == cp || ( 0x178 < cp &&                                            \
2144 ( 0x17F == cp || ( 0x17F < cp &&                                            \
2145 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
2146 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
2147 ( 0x39C == cp || ( 0x39C < cp &&                                            \
2148 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
2149 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
2150 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
2151 ( 0x212A == cp || ( 0x212A < cp &&                                          \
2152 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
2153
2154 /*
2155         PATWS: pattern white space
2156
2157         \p{PatWS}
2158 */
2159 /*** GENERATED CODE ***/
2160 #define is_PATWS_safe(s,e,is_utf8)                                          \
2161 ( ( LIKELY((e) > (s)) ) ?                                                   \
2162     ( ( ( ( ((U8*)s)[0] & 0xEF ) == 0x05 ) || ((U8*)s)[0] == 0x0B || ( ( ((U8*)s)[0] & 0xFE ) == 0x0C ) || ((U8*)s)[0] == 0x25 || ((U8*)s)[0] == 0x40 ) ? 1\
2163     : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((U8*)s)[0] ) ) ? ( ( 0x41 == ((U8*)s)[1] ) ?\
2164                     ( ( 0x55 == ((U8*)s)[2] || 0x56 == ((U8*)s)[2] ) ? 3 : 0 )\
2165                 : ( ( 0x42 == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] || 0x4A == ((U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
2166 : 0 )
2167
2168 /*** GENERATED CODE ***/
2169 #define is_PATWS_cp(cp)                                                     \
2170 ( 0x05 == cp || ( 0x05 < cp &&                                              \
2171 ( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
2172 ( 0x15 == cp || ( 0x15 < cp &&                                              \
2173 ( 0x25 == cp || ( 0x25 < cp &&                                              \
2174 ( 0x40 == cp || ( 0x40 < cp &&                                              \
2175 ( 0x200E == cp || ( 0x200E < cp &&                                          \
2176 ( 0x200F == cp || ( 0x200F < cp &&                                          \
2177 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
2178
2179 #endif  /* EBCDIC 037 */
2180
2181 #if 'A' == 193 /* EBCDIC POSIX-BC */ \
2182      && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
2183      && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
2184      && '$' == 91 && '@' == 124 && '`' == 74
2185 /*
2186         LNBREAK: Line Break: \R
2187
2188         "\x0D\x0A"      # CRLF - Network (Windows) line ending
2189         \p{VertSpace}
2190 */
2191 /*** GENERATED CODE ***/
2192 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
2193 ( ((e)-(s) > 2) ?                                                           \
2194     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
2195     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
2196         ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
2197     : ( ( ( ( is_utf8 ) && ( 0xCA == ((U8*)s)[0] ) ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )\
2198 : ((e)-(s) > 1) ?                                                           \
2199     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
2200     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
2201         ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
2202     : 0 )                                                                   \
2203 : ((e)-(s) > 0) ?                                                           \
2204     ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
2205 : 0 )
2206
2207 /*** GENERATED CODE ***/
2208 #define is_LNBREAK_utf8_safe(s,e)                                           \
2209 ( ((e)-(s) > 2) ?                                                           \
2210     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
2211     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
2212         ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
2213     : ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )\
2214 : ((e)-(s) > 1) ?                                                           \
2215     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
2216     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
2217         ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
2218     : 0 )                                                                   \
2219 : ((e)-(s) > 0) ?                                                           \
2220     ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
2221 : 0 )
2222
2223 /*** GENERATED CODE ***/
2224 #define is_LNBREAK_latin1_safe(s,e)                                         \
2225 ( ((e)-(s) > 1) ?                                                           \
2226     ( ( ( 0x0B == ((U8*)s)[0] || 0x0C == ((U8*)s)[0] ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] ) ? 1\
2227     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
2228         ( ( 0x15 == ((U8*)s)[1] ) ? 2 : 1 )                                 \
2229     : 0 )                                                                   \
2230 : ((e)-(s) > 0) ?                                                           \
2231     ( ( 0x0B <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x15 == ((U8*)s)[0] || 0x25 == ((U8*)s)[0] )\
2232 : 0 )
2233
2234 /*
2235         HORIZWS: Horizontal Whitespace: \h \H
2236
2237         \p{HorizSpace}
2238 */
2239 /*** GENERATED CODE ***/
2240 #define is_HORIZWS_high(s)                                                  \
2241 ( ( 0xBE == ((U8*)s)[0] ) ?                                                 \
2242     ( ( ( 0x64 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
2243 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
2244     ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
2245         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
2246     : ( 0x42 == ((U8*)s)[1] ) ?                                             \
2247         ( ( 0x57 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
2248     : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x75 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
2249 : ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
2250
2251 /*** GENERATED CODE ***/
2252 #define is_HORIZWS_cp_high(cp)                                              \
2253 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
2254 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
2255 ( 0x202F == cp || ( 0x202F < cp &&                                          \
2256 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
2257
2258 /*
2259         VERTWS: Vertical Whitespace: \v \V
2260
2261         \p{VertSpace}
2262 */
2263 /*** GENERATED CODE ***/
2264 #define is_VERTWS_high(s)                                                   \
2265 ( ( ( ( 0xCA == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 )
2266
2267 /*** GENERATED CODE ***/
2268 #define is_VERTWS_cp_high(cp)                                               \
2269 ( 0x2028 == cp || 0x2029 == cp )
2270
2271 /*
2272         XDIGIT: Hexadecimal digits
2273
2274         \p{XDigit}
2275 */
2276 /*** GENERATED CODE ***/
2277 #define is_XDIGIT_high(s)                                                   \
2278 ( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x75 == ((U8*)s)[1] ) ) ? ( ( 0x68 == ((U8*)s)[2] ) ?\
2279             ( ( ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) ) ? 4 : 0 )\
2280         : ( ( 0x69 == ((U8*)s)[2] || 0x70 == ((U8*)s)[2] ) && ( 0x42 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
2281
2282 /*** GENERATED CODE ***/
2283 #define is_XDIGIT_cp_high(cp)                                               \
2284 ( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
2285 ( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
2286
2287 /*
2288         XPERLSPACE: \p{XPerlSpace}
2289
2290         \p{XPerlSpace}
2291 */
2292 /*** GENERATED CODE ***/
2293 #define is_XPERLSPACE_high(s)                                               \
2294 ( ( 0xBE == ((U8*)s)[0] ) ?                                                 \
2295     ( ( ( 0x64 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
2296 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
2297     ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
2298         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 == ((U8*)s)[2] || 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )\
2299     : ( 0x42 == ((U8*)s)[1] ) ?                                             \
2300         ( ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] || 0x57 == ((U8*)s)[2] ) ? 3 : 0 )\
2301     : ( ( 0x43 == ((U8*)s)[1] ) && ( 0x75 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
2302 : ( ( ( 0xCE == ((U8*)s)[0] ) && ( 0x41 == ((U8*)s)[1] ) ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )
2303
2304 /*** GENERATED CODE ***/
2305 #define is_XPERLSPACE_cp_high(cp)                                           \
2306 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
2307 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
2308 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
2309 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
2310 ( 0x202F == cp || ( 0x202F < cp &&                                          \
2311 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
2312
2313 /*
2314         REPLACEMENT: Unicode REPLACEMENT CHARACTER
2315
2316         0xFFFD
2317 */
2318 /*** GENERATED CODE ***/
2319 #define is_REPLACEMENT_utf8_safe(s,e)                                       \
2320 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDC == ((U8*)s)[0] ) ) && ( 0x75 == ((U8*)s)[1] ) ) && ( 0x75 == ((U8*)s)[2] ) ) && ( 0x73 == ((U8*)s)[3] ) ) ? 4 : 0 )
2321
2322 /*
2323         NONCHAR: Non character code points
2324
2325         \p{Nchar}
2326 */
2327 /*** GENERATED CODE ***/
2328 #define is_NONCHAR_utf8(s)                                                  \
2329 ( ( 0xDC == ((U8*)s)[0] ) ?                                                 \
2330     ( ( 0x75 == ((U8*)s)[1] ) ?                                             \
2331         ( ( 0x56 == ((U8*)s)[2] ) ?                                         \
2332             ( ( ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
2333         : ( 0x57 == ((U8*)s)[2] ) ?                                         \
2334             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x57 ) ) ? 4 : 0 )\
2335         : ( ( 0x75 == ((U8*)s)[2] ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x74 ) ) ? 4 : 0 )\
2336     : 0 )                                                                   \
2337 : ( 0xDE == ((U8*)s)[0] || 0xE0 == ((U8*)s)[0] || 0xEA == ((U8*)s)[0] ) ?   \
2338     ( ( ( ( 0x75 == ((U8*)s)[1] ) && ( 0x75 == ((U8*)s)[2] ) ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x74 ) ) ? 4 : 0 )\
2339 : ( 0xEB == ((U8*)s)[0] ) ?                                                 \
2340     ( ( ( ( ( ( ( ((U8*)s)[1] & 0xF9 ) == 0x51 ) || ((U8*)s)[1] == 0x59 || ((U8*)s)[1] == 0x63 || ( ( ((U8*)s)[1] & 0xFD ) == 0x65 ) || ((U8*)s)[1] == 0x69 || ( ( ((U8*)s)[1] & 0xFD ) == 0x71 ) || ((U8*)s)[1] == 0x75 ) && ( 0x75 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) && ( ( ((U8*)s)[4] & 0xFE ) == 0x74 ) ) ? 5 : 0 )\
2341 : ( ( ( ( ( 0xEC == ((U8*)s)[0] ) && ( 0x42 == ((U8*)s)[1] ) ) && ( 0x75 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) && ( ( ((U8*)s)[4] & 0xFE ) == 0x74 ) ) ? 5 : 0 )
2342
2343 /*
2344         SURROGATE: Surrogate characters
2345
2346         \p{Gc=Cs}
2347 */
2348 /*** GENERATED CODE ***/
2349 #define is_SURROGATE_utf8(s)                                                \
2350 ( ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0x66 ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) && ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ) ? 4 : 0 )
2351
2352 /*
2353         GCB_L: Grapheme_Cluster_Break=L
2354
2355         \p{_X_GCB_L}
2356 */
2357 /*** GENERATED CODE ***/
2358 #define is_GCB_L_utf8(s)                                                    \
2359 ( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
2360     ( ( ( 0x49 == ((U8*)s)[1] || ( 0x51 == ((U8*)s)[1] || 0x52 == ((U8*)s)[1] ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
2361 : ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x52 == ((U8*)s)[1] ) ) && ( 0x53 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
2362
2363 /*
2364         GCB_LV_LVT_V: Grapheme_Cluster_Break=(LV or LVT or V)
2365
2366         \p{_X_LV_LVT_V}
2367 */
2368 /*** GENERATED CODE ***/
2369 #define is_GCB_LV_LVT_V_utf8(s)                                             \
2370 ( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
2371     ( ( 0x53 == ((U8*)s)[1] || 0x54 == ((U8*)s)[1] ) ?                      \
2372         ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
2373     : ( ( 0x55 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
2374 : ( 0xDC == ((U8*)s)[0] ) ?                                                 \
2375     ( ( ( 0x53 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x64 ) ) ?\
2376         ( ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) && ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ) ? 4 : 0 )\
2377     : ( 0x65 == ((U8*)s)[1] ) ?                                             \
2378         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ?\
2379             ( ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ? 4 : 0 )\
2380         : ( 0x73 == ((U8*)s)[2] ) ?                                         \
2381             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
2382         : ( ( 0x74 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )\
2383     : 0 )                                                                   \
2384 : 0 )
2385
2386 /*
2387         GCB_Prepend: Grapheme_Cluster_Break=Prepend
2388
2389         \p{_X_GCB_Prepend}
2390 */
2391 /*** GENERATED CODE ***/
2392 #define is_GCB_Prepend_utf8(s)                                              \
2393 ( 0 )
2394
2395 /*
2396         GCB_RI: Grapheme_Cluster_Break=RI
2397
2398         \p{_X_RI}
2399 */
2400 /*** GENERATED CODE ***/
2401 #define is_GCB_RI_utf8(s)                                                   \
2402 ( ( ( ( ( 0xDE == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x57 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ) ? 4 : 0 )
2403
2404 /*
2405         GCB_SPECIAL_BEGIN_START: Grapheme_Cluster_Break=special_begin_starts
2406
2407         \p{_X_Special_Begin_Start}
2408 */
2409 /*** GENERATED CODE ***/
2410 #define is_GCB_SPECIAL_BEGIN_START_utf8(s)                                  \
2411 ( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
2412     ( ( ( 0x49 == ((U8*)s)[1] || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x57 ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
2413 : ( 0xDC == ((U8*)s)[0] ) ?                                                 \
2414     ( ( 0x52 == ((U8*)s)[1] ) ?                                             \
2415         ( ( ( 0x53 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )\
2416     : ( ( 0x53 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x64 ) ) ?\
2417         ( ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) && ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ) ? 4 : 0 )\
2418     : ( 0x65 == ((U8*)s)[1] ) ?                                             \
2419         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x72 ) ) ?\
2420             ( ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ? 4 : 0 )\
2421         : ( 0x73 == ((U8*)s)[2] ) ?                                         \
2422             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) || ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
2423         : ( 0x74 == ((U8*)s)[2] ) ?                                         \
2424             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x53 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
2425         : ( ( 0x75 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( ((U8*)s)[3] & 0xFE ) == 0x70 ) ) ? 4 : 0 )\
2426     : 0 )                                                                   \
2427 : ( ( ( ( 0xDE == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x57 == ((U8*)s)[2] ) ) && ( ( 0x47 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ) ? 4 : 0 )
2428
2429 /*
2430         GCB_T: Grapheme_Cluster_Break=T
2431
2432         \p{_X_GCB_T}
2433 */
2434 /*** GENERATED CODE ***/
2435 #define is_GCB_T_utf8(s)                                                    \
2436 ( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
2437     ( ( 0x55 == ((U8*)s)[1] ) ?                                             \
2438         ( ( 0x49 == ((U8*)s)[2] || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x75 ) ) ? 3 : 0 )\
2439     : ( ( ( ((U8*)s)[1] & 0xFE ) == 0x56 ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
2440 : ( ( 0xDC == ((U8*)s)[0] ) && ( 0x65 == ((U8*)s)[1] ) ) ? ( ( 0x74 == ((U8*)s)[2] ) ?\
2441             ( ( ( 0x53 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
2442         : ( ( 0x75 == ((U8*)s)[2] ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( ((U8*)s)[3] & 0xFE ) == 0x70 ) ) ? 4 : 0 ) : 0 )
2443
2444 /*
2445         GCB_V: Grapheme_Cluster_Break=V
2446
2447         \p{_X_GCB_V}
2448 */
2449 /*** GENERATED CODE ***/
2450 #define is_GCB_V_utf8(s)                                                    \
2451 ( ( 0xBA == ((U8*)s)[0] ) ?                                                 \
2452     ( ( 0x53 == ((U8*)s)[1] || 0x54 == ((U8*)s)[1] ) ?                      \
2453         ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
2454     : ( ( 0x55 == ((U8*)s)[1] ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) ) ? 3 : 0 )\
2455 : ( ( 0xDC == ((U8*)s)[0] ) && ( 0x65 == ((U8*)s)[1] ) ) ? ( ( 0x73 == ((U8*)s)[2] ) ?\
2456             ( ( ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || ( 0x70 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x75 ) ) ? 4 : 0 )\
2457         : ( ( 0x74 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
2458
2459 /*
2460         UTF8_CHAR: Matches legal UTF-EBCDIC encoded characters from 2 through 3 bytes
2461
2462         0xA0 - 0x3FFF
2463 */
2464 /*** GENERATED CODE ***/
2465 #define is_UTF8_CHAR_utf8_no_length_checks(s)                               \
2466 ( ( ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x90 ) || ( 0x9A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xA1 ) || ( 0xAA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xB5 ) ) ?\
2467     ( ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) ? 2 : 0 )\
2468 : ( ( ( ( 0xB7 <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xBA ) || ( 0xBE <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xC0 ) || ( 0xCA <= ((U8*)s)[0] && ((U8*)s)[0] <= 0xD0 ) || 0xDA == ((U8*)s)[0] ) && ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )
2469
2470 /*
2471         QUOTEMETA: Meta-characters that \Q should quote
2472
2473         \p{_Perl_Quotemeta}
2474 */
2475 /*** GENERATED CODE ***/
2476 #define is_QUOTEMETA_high_part0(s)                                          \
2477 ( ( 0x64 == ((U8*)s)[1] ) ?                                                 \
2478         ( ( 0x41 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
2479     : ( ( 0x73 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x64 ) ) ? 3 : 0 )
2480
2481
2482 /*** GENERATED CODE ***/
2483 #define is_QUOTEMETA_high_part1(s)                                          \
2484 ( ( 0xBF == ((U8*)s)[0] ) ?                                                 \
2485     ( ( ( 0x41 == ((U8*)s)[1] ) && ( 0x53 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
2486 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
2487     ( ( 0x41 == ((U8*)s)[1] || ( 0x55 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x69 ) || ( 0x70 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x75 ) ) ?\
2488         ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
2489     : ( 0x42 == ((U8*)s)[1] ) ?                                             \
2490         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x74 ) ) ? 3 : 0 )\
2491     : ( 0x43 == ((U8*)s)[1] ) ?                                             \
2492         ( ( ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ((U8*)s)[2] == 0x51 || ((U8*)s)[2] == 0x65 || ( ( ((U8*)s)[2] & 0xFE ) == 0x66 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
2493     : ( 0x44 == ((U8*)s)[1] ) ?                                             \
2494         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x57 ) ) ? 3 : 0 )\
2495     : ( ( 0x54 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x75 ) ) ) ? 3 : 0 )\
2496 : ( 0xCB == ((U8*)s)[0] ) ?                                                 \
2497     ( ( ( 0x41 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x43 ) || 0x49 == ((U8*)s)[1] || ( 0x51 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x69 ) || 0x70 == ((U8*)s)[1] || ( 0x73 <= ((U8*)s)[1] && ((U8*)s)[1] <= 0x75 ) ) ?\
2498         ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
2499     : ( 0x71 == ((U8*)s)[1] ) ?                                             \
2500         ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x49 ) || ( 0x51 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x65 ) ) ? 3 : 0 )\
2501     : ( ( 0x72 == ((U8*)s)[1] ) && ( ( 0x64 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x69 ) || ( 0x70 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x75 ) ) ) ? 3 : 0 )\
2502 : ( 0xCC == ((U8*)s)[0] ) ?                                                 \
2503     ( ( ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
2504 : ( 0xCD == ((U8*)s)[0] ) ?                                                 \
2505     ( ( ( ( ((U8*)s)[1] & 0xFE ) == 0x58 || ( ((U8*)s)[1] & 0xFE ) == 0x62 ) && ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ) ? 3 : 0 )\
2506 : ( 0xCE == ((U8*)s)[0] ) ?                                                 \
2507     ( ( 0x41 == ((U8*)s)[1] ) ?                                             \
2508         ( ( ( ( ((U8*)s)[2] & 0xE7 ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ((U8*)s)[2] == 0x44 || ( ( ((U8*)s)[2] & 0xFC ) == 0x54 ) || ((U8*)s)[2] == 0x58 || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
2509     : ( 0x42 == ((U8*)s)[1] ) ?                                             \
2510         ( ( 0x41 == ((U8*)s)[2] || 0x58 == ((U8*)s)[2] ) ? 3 : 0 )          \
2511     : ( ( 0x53 == ((U8*)s)[1] ) && ( 0x45 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
2512 : ( 0xDC == ((U8*)s)[0] ) ?                                                 \
2513     ( ( 0x75 == ((U8*)s)[1] ) ?                                             \
2514         ( ( 0x51 == ((U8*)s)[2] ) ?                                         \
2515             ( ( ( ((U8*)s)[3] & 0xFE ) == 0x74 ) ? 4 : 0 )                  \
2516         : ( 0x58 == ((U8*)s)[2] ) ?                                         \
2517             ( ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x49 ) || ( 0x51 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x57 ) ) ? 4 : 0 )\
2518         : ( 0x62 == ((U8*)s)[2] ) ?                                         \
2519             ( ( ( ((U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 )                  \
2520         : ( 0x67 == ((U8*)s)[2] ) ?                                         \
2521             ( ( 0x75 == ((U8*)s)[3] ) ? 4 : 0 )                             \
2522         : ( 0x73 == ((U8*)s)[2] ) ?                                         \
2523             ( ( 0x41 == ((U8*)s)[3] ) ? 4 : 0 )                             \
2524         : ( ( 0x75 == ((U8*)s)[2] ) && ( ( ((U8*)s)[3] & 0xFE ) == 0x58 || ( 0x62 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x68 ) ) ) ? 4 : 0 )\
2525     : 0 )                                                                   \
2526 : ( 0xDE == ((U8*)s)[0] ) ?                                                 \
2527     ( ( 0x57 == ((U8*)s)[1] ) ?                                             \
2528         ( ( ( 0x46 == ((U8*)s)[2] ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
2529     : ( ( ( 0x64 == ((U8*)s)[1] ) && ( 0x53 == ((U8*)s)[2] ) ) && ( ( 0x63 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x69 ) || 0x70 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2530 : ( ( ( ( ( 0xEB == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x44 ) ) && ( ( ( ((U8*)s)[3] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[3] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[3] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[3] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[3] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[3] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[3] & 0xFA ) == 0x70 ) ) ) && ( ( ( ((U8*)s)[4] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[4] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[4] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[4] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[4] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[4] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[4] & 0xFA ) == 0x70 ) ) ) ? 5 : 0 )
2531
2532
2533 /*** GENERATED CODE ***/
2534 #define is_QUOTEMETA_high(s)                                                \
2535 ( ( 0xB0 == ((U8*)s)[0] ) ?                                                 \
2536     ( ( 0x57 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2537 : ( 0xB7 == ((U8*)s)[0] ) ?                                                 \
2538     ( ( ( 0x58 == ((U8*)s)[1] ) && ( 0x72 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
2539 : ( 0xBA == ((U8*)s)[0] ) ?                                                 \
2540     ( ( 0x52 == ((U8*)s)[1] ) ?                                             \
2541         ( ( 0x75 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
2542     : ( ( 0x53 == ((U8*)s)[1] ) && ( 0x41 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
2543 : ( 0xBE == ((U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
2544
2545 /*
2546         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
2547
2548         &regcharclass_multi_char_folds::multi_char_folds(1)
2549 */
2550 /*** GENERATED CODE ***/
2551 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
2552 ( ( 0x81 == ((U8*)s)[0] ) ?                                                 \
2553         ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x74 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2554     : ( 0x86 == ((U8*)s)[0] ) ?                                             \
2555         ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
2556             ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
2557         : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
2558     : ( 0x88 == ((U8*)s)[0] ) ?                                             \
2559         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x59 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2560     : ( 0x89 == ((U8*)s)[0] ) ?                                             \
2561         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2562     : ( 0x90 == ((U8*)s)[0] ) ?                                             \
2563         ( ( ( ( 0x75 == ((U8*)s)[1] ) && ( 0x90 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2564     : ( 0x91 == ((U8*)s)[0] ) ?                                             \
2565         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x54 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2566     : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
2567         ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
2568     : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
2569         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2570     : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
2571         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2572     : ( 0xAB == ((U8*)s)[0] ) ?                                             \
2573         ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2574     : ( 0xB3 == ((U8*)s)[0] ) ?                                             \
2575         ( ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) ?                              \
2576             ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2577         : ( 0x59 == ((U8*)s)[1] || 0x67 == ((U8*)s)[1] ) ?                  \
2578             ( ( 0xB0 == ((U8*)s)[2] ) ?                                     \
2579                 ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
2580             : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2581         : ( ( ( 0x69 == ((U8*)s)[1] ) && ( 0xB0 == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2582     : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
2583         ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
2584             ( ( ( 0xAE == ((U8*)s)[2] ) && ( 0x63 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2585         : ( 0x46 == ((U8*)s)[1] ) ?                                         \
2586             ( ( 0xAE == ((U8*)s)[2] ) ?                                     \
2587                 ( ( 0x63 == ((U8*)s)[3] ) ? 4 : 0 )                         \
2588             : ( ( 0xB0 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2589         : ( 0x51 == ((U8*)s)[1] ) ?                                         \
2590             ( ( 0xB0 == ((U8*)s)[2] ) ?                                     \
2591                 ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
2592             : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2593         : ( ( ( 0x56 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2594     : ( 0xC0 == ((U8*)s)[0] ) ?                                             \
2595         ( ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) ?                              \
2596             ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x69 == ((U8*)s)[4] ) ) ? 5 : 0 )\
2597         : ( ( ( ( 0x71 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x58 == ((U8*)s)[2] || 0x64 == ((U8*)s)[2] || 0x72 == ((U8*)s)[2] ) ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x69 == ((U8*)s)[4] ) ) ? 5 : 0 )\
2598     : 0 )
2599
2600
2601 /*** GENERATED CODE ***/
2602 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
2603 ( ((e)-(s) > 3) ?                                                           \
2604     ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
2605         ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x74 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2606     : ( 0x86 == ((U8*)s)[0] ) ?                                             \
2607         ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
2608             ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
2609         : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
2610     : ( 0x88 == ((U8*)s)[0] ) ?                                             \
2611         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x59 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2612     : ( 0x89 == ((U8*)s)[0] ) ?                                             \
2613         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2614     : ( 0x90 == ((U8*)s)[0] ) ?                                             \
2615         ( ( ( ( 0x75 == ((U8*)s)[1] ) && ( 0x90 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2616     : ( 0x91 == ((U8*)s)[0] ) ?                                             \
2617         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x54 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2618     : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
2619         ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
2620     : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
2621         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2622     : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
2623         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2624     : ( 0xAB == ((U8*)s)[0] ) ?                                             \
2625         ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2626     : ( 0xB3 == ((U8*)s)[0] ) ?                                             \
2627         ( ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) ?                              \
2628             ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2629         : ( 0x59 == ((U8*)s)[1] || 0x67 == ((U8*)s)[1] ) ?                  \
2630             ( ( 0xB0 == ((U8*)s)[2] ) ?                                     \
2631                 ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
2632             : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2633         : ( ( ( 0x69 == ((U8*)s)[1] ) && ( 0xB0 == ((U8*)s)[2] ) ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2634     : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
2635         ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
2636             ( ( ( 0xAE == ((U8*)s)[2] ) && ( 0x63 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2637         : ( 0x46 == ((U8*)s)[1] ) ?                                         \
2638             ( ( 0xAE == ((U8*)s)[2] ) ?                                     \
2639                 ( ( 0x63 == ((U8*)s)[3] ) ? 4 : 0 )                         \
2640             : ( ( 0xB0 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2641         : ( 0x51 == ((U8*)s)[1] ) ?                                         \
2642             ( ( 0xB0 == ((U8*)s)[2] ) ?                                     \
2643                 ( ( 0x43 == ((U8*)s)[3] ) ? 4 : 0 )                         \
2644             : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2645         : ( ( ( 0x56 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2646     : 0 )                                                                   \
2647 : ((e)-(s) > 2) ?                                                           \
2648     ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
2649         ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x74 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2650     : ( 0x86 == ((U8*)s)[0] ) ?                                             \
2651         ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
2652             ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
2653         : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
2654     : ( 0x88 == ((U8*)s)[0] ) ?                                             \
2655         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x59 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2656     : ( 0x89 == ((U8*)s)[0] ) ?                                             \
2657         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2658     : ( 0x91 == ((U8*)s)[0] ) ?                                             \
2659         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x54 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2660     : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
2661         ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
2662     : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
2663         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2664     : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
2665         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2666     : ( ( ( 0xAB == ((U8*)s)[0] ) && ( 0x72 == ((U8*)s)[1] ) ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )\
2667 : ((e)-(s) > 1) ?                                                           \
2668     ( ( 0x86 == ((U8*)s)[0] ) ?                                             \
2669         ( ( 0x86 == ((U8*)s)[1] || 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )\
2670     : ( ( 0xA2 == ((U8*)s)[0] ) && ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
2671 : 0 )
2672
2673
2674 /*** GENERATED CODE ***/
2675 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
2676 ( ((e)-(s) > 5) ?                                                           \
2677     ( ( 0x81 == ((U8*)s)[0] ) ?                                             \
2678         ( ( ( 0xAB == ((U8*)s)[1] ) && ( 0x74 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2679     : ( 0x86 == ((U8*)s)[0] ) ?                                             \
2680         ( ( 0x86 == ((U8*)s)[1] ) ?                                         \
2681             ( ( 0x89 == ((U8*)s)[2] || 0x93 == ((U8*)s)[2] ) ? 3 : 2 )      \
2682         : ( 0x89 == ((U8*)s)[1] || 0x93 == ((U8*)s)[1] ) ? 2 : 0 )          \
2683     : ( 0x88 == ((U8*)s)[0] ) ?                                             \
2684         ( ( ( 0xAF == ((U8*)s)[1] ) && ( 0x59 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2685     : ( 0x89 == ((U8*)s)[0] ) ?                                             \
2686         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2687     : ( 0x90 == ((U8*)s)[0] ) ?                                             \
2688         ( ( ( ( 0x75 == ((U8*)s)[1] ) && ( 0x90 == ((U8*)s)[2] ) ) && ( 0x75 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2689     : ( 0x91 == ((U8*)s)[0] ) ?                                             \
2690         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x54 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2691     : ( 0xA2 == ((U8*)s)[0] ) ?                                             \
2692         ( ( ( ((U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                      \
2693     : ( 0xA3 == ((U8*)s)[0] ) ?                                             \
2694         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2695     : ( 0xA6 == ((U8*)s)[0] || 0xA8 == ((U8*)s)[0] ) ?                      \
2696         ( ( ( 0xAE == ((U8*)s)[1] ) && ( 0x52 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2697     : ( 0xAB == ((U8*)s)[0] ) ?                                             \
2698         ( ( ( 0x72 == ((U8*)s)[1] ) && ( 0x95 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
2699     : ( 0xB3 == ((U8*)s)[0] ) ?                                             \
2700         ( ( ( ((U8*)s)[1] & 0xFD ) == 0x54 ) ?                              \
2701             ( ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2702         : ( 0x59 == ((U8*)s)[1] || 0x67 == ((U8*)s)[1] ) ?                  \
2703             ( ( 0xB0 == ((U8*)s)[2] ) ?                                     \
2704                 ( ( 0x43 == ((U8*)s)[3] ) ?                                 \
2705                     ( ( ( 0xB3 == ((U8*)s)[4] ) && ( 0x69 == ((U8*)s)[5] ) ) ? 6 : 4 )\
2706                 : 0 )                                                       \
2707             : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2708         : ( 0x69 == ((U8*)s)[1] ) ?                                         \
2709             ( ( 0xAE == ((U8*)s)[2] ) ?                                     \
2710                 ( ( 0x49 == ((U8*)s)[3] ) ?                                 \
2711                     ( ( 0xAE == ((U8*)s)[4] ) ?                             \
2712                         ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
2713                     : ( ( 0xB0 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
2714                 : 0 )                                                       \
2715             : ( ( 0xB0 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2716         : 0 )                                                               \
2717     : ( 0xB4 == ((U8*)s)[0] ) ?                                             \
2718         ( ( 0x42 == ((U8*)s)[1] ) ?                                         \
2719             ( ( ( 0xAE == ((U8*)s)[2] ) && ( 0x63 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2720         : ( 0x46 == ((U8*)s)[1] ) ?                                         \
2721             ( ( 0xAE == ((U8*)s)[2] ) ?                                     \
2722                 ( ( 0x49 == ((U8*)s)[3] ) ?                                 \
2723                     ( ( 0xAE == ((U8*)s)[4] ) ?                             \
2724                         ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 0 )\
2725                     : ( ( 0xB0 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
2726                 : ( 0x63 == ((U8*)s)[3] ) ?                                 \
2727                     ( ( 0xAE == ((U8*)s)[4] ) ?                             \
2728                         ( ( 0x41 == ((U8*)s)[5] || 0x42 == ((U8*)s)[5] ) ? 6 : 4 )\
2729                     : ( ( 0xB0 == ((U8*)s)[4] ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 4 )\
2730                 : 0 )                                                       \
2731             : ( ( 0xB0 == ((U8*)s)[2] ) && ( 0x43 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2732         : ( 0x51 == ((U8*)s)[1] ) ?                                         \
2733             ( ( 0xB0 == ((U8*)s)[2] ) ?                                     \
2734                 ( ( 0x43 == ((U8*)s)[3] ) ?                                 \
2735                     ( ( ( 0xB3 == ((U8*)s)[4] ) && ( 0x69 == ((U8*)s)[5] ) ) ? 6 : 4 )\
2736                 : 0 )                                                       \
2737             : ( ( 0xB3 == ((U8*)s)[2] ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2738         : ( ( ( 0x56 == ((U8*)s)[1] ) && ( 0xB3 == ((U8*)s)[2] ) ) && ( 0x69 == ((U8*)s)[3] ) ) ? 4 : 0 )\
2739     : ( 0xB7 == ((U8*)s)[0] ) ?                                             \
2740         ( ( 0x53 == ((U8*)s)[1] ) ?                                         \
2741             ( ( 0x46 == ((U8*)s)[2] ) ?                                     \
2742                 ( ( ( ( 0xB7 == ((U8*)s)[3] ) && ( 0x54 == ((U8*)s)[4] ) ) && ( 0x43 == ((U8*)s)[5] ) ) ? 6 : 0 )\
2743             : ( 0x64 == ((U8*)s)[2] ) ?                                     \
2744                 ( ( ( ( 0xB7 == ((U8*)s)[3] ) && ( 0x53 == ((U8*)s)[4] ) ) && ( ( ( ((U8*)s)[5] & 0xDF ) == 0x46 ) || ((U8*)s)[5] == 0x53 || ((U8*)s)[5] == 0x55 ) ) ? 6 : 0 )\
2745             : ( ( ( ( 0x74 == ((U8*)s)[2] ) && ( 0xB7 == ((U8*)s)[3] ) ) && ( 0x53 == ((U8*)s)[4] ) ) && ( 0x66 == ((U8*)s)[5] ) ) ? 6 : 0 )\
2746         : 0 )                                                               \
2747     : ( 0xC0 == ((U8*)s)[0] ) ?                                             \
2748         ( ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) ?                              \
2749             ( ( ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x69 == ((U8*)s)[4] ) ) ? 5 : 0 )\
2750         : ( ( ( ( 0x71 == ((U8*)s)[1] ) && ( ( 0x41 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x48 ) || 0x58 == ((U8*)s)[2] || 0x64 == ((U8*)s)[2] || 0x72 == ((U8*)s)[2] ) ) && ( 0xB3 == ((U8*)s)[3] ) ) && ( 0x69 == ((U8*)s)[4] ) ) ? 5 : 0 )\
2751     : 0 )                                                                   \
2752 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
2753
2754 /*
2755         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
2756
2757         &regcharclass_multi_char_folds::multi_char_folds(0)
2758 */
2759 /*** GENERATED CODE ***/
2760 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
2761 ( ((e)-(s) > 2) ?                                                           \
2762     ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ?                                  \
2763         ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) ?                              \
2764             ( ( ( ( ((U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
2765         : ( ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
2766     : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
2767 : ((e)-(s) > 1) ?                                                           \
2768     ( ( ( ((U8*)s)[0] & 0xBF ) == 0x86 ) ?                                  \
2769         ( ( ( ( ((U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
2770     : ( ( ( ((U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
2771 : 0 )
2772
2773 /*
2774         FOLDS_TO_MULTI: characters that fold to multi-char strings
2775
2776         \p{_Perl_Folds_To_Multi_Char}
2777 */
2778 /*** GENERATED CODE ***/
2779 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
2780 ( ( 0x8B == ((U8*)s)[0] ) ?                                                 \
2781     ( ( 0x75 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2782 : ( 0x8E == ((U8*)s)[0] || 0x9D == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?\
2783     ( ( 0x58 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2784 : ( 0x8F == ((U8*)s)[0] ) ?                                                 \
2785     ( ( 0x51 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2786 : ( 0xB7 == ((U8*)s)[0] ) ?                                                 \
2787     ( ( ( 0x54 == ((U8*)s)[1] ) && ( 0x48 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
2788 : ( 0xC0 == ((U8*)s)[0] ) ?                                                 \
2789     ( ( 0x64 == ((U8*)s)[1] ) ?                                             \
2790         ( ( ( ( ((U8*)s)[2] & 0xFE ) == 0x66 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0x70 ) ) ? 3 : 0 )\
2791     : ( 0x70 == ((U8*)s)[1] ) ?                                             \
2792         ( ( ((U8*)s)[2] == 0x58 || ((U8*)s)[2] == 0x62 || ( ( ((U8*)s)[2] & 0xFD ) == 0x64 ) ) ? 3 : 0 )\
2793     : ( 0x72 == ((U8*)s)[1] ) ?                                             \
2794         ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x70 ) ) ? 3 : 0 )\
2795     : ( 0x73 == ((U8*)s)[1] ) ?                                             \
2796         ( ( ( ( ((U8*)s)[2] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[2] & 0xEE ) == 0x42 ) || ( ( ((U8*)s)[2] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x48 ) || ( ( ((U8*)s)[2] & 0xFA ) == 0x62 ) || ((U8*)s)[2] == 0x64 || ((U8*)s)[2] == 0x72 ) ? 3 : 0 )\
2797     : ( 0x74 == ((U8*)s)[1] ) ?                                             \
2798         ( ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ((U8*)s)[2] == 0x54 || ( ( ((U8*)s)[2] & 0xFA ) == 0x62 ) ) ? 3 : 0 )\
2799     : ( ( 0x75 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x44 ) || ((U8*)s)[2] == 0x48 || ( ( ((U8*)s)[2] & 0xFA ) == 0x62 ) || ((U8*)s)[2] == 0x64 || ((U8*)s)[2] == 0x72 ) ) ? 3 : 0 )\
2800 : ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x74 == ((U8*)s)[1] ) ) && ( 0x68 == ((U8*)s)[2] ) ) && ( ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) || ( 0x63 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x67 ) ) ) ? 4 : 0 )
2801
2802 /*
2803         PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
2804
2805         \p{_Perl_Problematic_Locale_Folds}
2806 */
2807 /*** GENERATED CODE ***/
2808 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
2809 ( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0x4A ) || ( ( ((U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((U8*)s)[0] & 0xAF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((U8*)s)[0] & 0xBF ) == 0xBB ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xBC ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC2 ) || ( ( ((U8*)s)[0] & 0xCC ) == 0xC4 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xF0 ) || ( ( ((U8*)s)[0] & 0xFD ) == 0xFD ) ) ? 1\
2810 : ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x8C ) ?                          \
2811     ( ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) ? 2 : 0 )\
2812 : ( 0x8E == ((U8*)s)[0] || 0x9D == ((U8*)s)[0] ) ?                          \
2813     ( ( 0x58 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2814 : ( 0x8F == ((U8*)s)[0] ) ?                                                 \
2815     ( ( 0x51 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2816 : ( 0x90 == ((U8*)s)[0] ) ?                                                 \
2817     ( ( 0x68 == ((U8*)s)[1] || 0x75 == ((U8*)s)[1] ) ? 2 : 0 )              \
2818 : ( ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?                                      \
2819     ( ( 0x72 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2820 : ( 0xC0 == ((U8*)s)[0] ) ?                                                 \
2821     ( ( ( 0x64 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFE ) == 0x66 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0x70 ) ) ) ? 3 : 0 )\
2822 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
2823     ( ( ( 0x51 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x52 ) ) ? 3 : 0 )\
2824 : ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x74 == ((U8*)s)[1] ) ) && ( 0x68 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
2825
2826 /*** GENERATED CODE ***/
2827 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
2828 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
2829 ( 0x130 == cp || ( 0x130 < cp &&                                            \
2830 ( 0x149 == cp || ( 0x149 < cp &&                                            \
2831 ( 0x178 == cp || ( 0x178 < cp &&                                            \
2832 ( 0x17F == cp || ( 0x17F < cp &&                                            \
2833 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
2834 ( 0x39C == cp || ( 0x39C < cp &&                                            \
2835 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
2836 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
2837 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
2838 ( 0x212A == cp || ( 0x212A < cp &&                                          \
2839 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
2840
2841 /*
2842         PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
2843
2844         \p{_Perl_Problematic_Locale_Foldeds_Start}
2845 */
2846 /*** GENERATED CODE ***/
2847 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
2848 ( ( ( ( ((U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0x4A ) || ( ( ((U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((U8*)s)[0] & 0xAF ) == 0x81 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((U8*)s)[0] & 0xEE ) == 0x88 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA2 ) || ( ( ((U8*)s)[0] & 0xFC ) == 0xA4 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((U8*)s)[0] & 0xBF ) == 0xBB ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xBC ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC2 ) || ( ( ((U8*)s)[0] & 0xCC ) == 0xC4 ) || ( ( ((U8*)s)[0] & 0xCE ) == 0xC8 ) || ( ( ((U8*)s)[0] & 0xFE ) == 0xF0 ) || ( ( ((U8*)s)[0] & 0xFD ) == 0xFD ) ) ? 1\
2849 : ( 0x8A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x8C ) ?                          \
2850     ( ( ( ( ((U8*)s)[1] & 0xEF ) == 0x41 ) || ( ( ((U8*)s)[1] & 0xCE ) == 0x42 ) || ( ( ((U8*)s)[1] & 0xEC ) == 0x44 ) || ( ( ((U8*)s)[1] & 0xEE ) == 0x48 ) || ( ( ((U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((U8*)s)[1] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[1] & 0xFA ) == 0x70 ) ) ? 2 : 0 )\
2851 : ( 0x8E == ((U8*)s)[0] || 0x9D == ((U8*)s)[0] ) ?                          \
2852     ( ( 0x58 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2853 : ( 0x8F == ((U8*)s)[0] ) ?                                                 \
2854     ( ( 0x51 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2855 : ( 0x90 == ((U8*)s)[0] ) ?                                                 \
2856     ( ( 0x68 == ((U8*)s)[1] || 0x75 == ((U8*)s)[1] ) ? 2 : 0 )              \
2857 : ( 0xAB == ((U8*)s)[0] || ( ((U8*)s)[0] & 0xFE ) == 0xB2 ) ?               \
2858     ( ( 0x72 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
2859 : ( 0xC0 == ((U8*)s)[0] ) ?                                                 \
2860     ( ( ( 0x64 == ((U8*)s)[1] ) && ( ( ( ((U8*)s)[2] & 0xFE ) == 0x66 ) || ( ( ((U8*)s)[2] & 0xFE ) == 0x68 ) || ( ( ((U8*)s)[2] & 0xFB ) == 0x70 ) ) ) ? 3 : 0 )\
2861 : ( 0xCA == ((U8*)s)[0] ) ?                                                 \
2862     ( ( ( 0x51 == ((U8*)s)[1] ) && ( ( ((U8*)s)[2] & 0xFE ) == 0x52 ) ) ? 3 : 0 )\
2863 : ( ( ( ( 0xDC == ((U8*)s)[0] ) && ( 0x74 == ((U8*)s)[1] ) ) && ( 0x68 == ((U8*)s)[2] ) ) && ( 0x41 <= ((U8*)s)[3] && ((U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
2864
2865 /*** GENERATED CODE ***/
2866 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
2867 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
2868 ( 0x130 == cp || ( 0x130 < cp &&                                            \
2869 ( 0x149 == cp || ( 0x149 < cp &&                                            \
2870 ( 0x178 == cp || ( 0x178 < cp &&                                            \
2871 ( 0x17F == cp || ( 0x17F < cp &&                                            \
2872 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
2873 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
2874 ( 0x39C == cp || ( 0x39C < cp &&                                            \
2875 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
2876 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
2877 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
2878 ( 0x212A == cp || ( 0x212A < cp &&                                          \
2879 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
2880
2881 /*
2882         PATWS: pattern white space
2883
2884         \p{PatWS}
2885 */
2886 /*** GENERATED CODE ***/
2887 #define is_PATWS_safe(s,e,is_utf8)                                          \
2888 ( ( LIKELY((e) > (s)) ) ?                                                   \
2889     ( ( ( ( ((U8*)s)[0] & 0xEF ) == 0x05 ) || ((U8*)s)[0] == 0x0B || ( ( ((U8*)s)[0] & 0xFE ) == 0x0C ) || ((U8*)s)[0] == 0x25 || ((U8*)s)[0] == 0x40 ) ? 1\
2890     : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((U8*)s)[0] ) ) ? ( ( 0x41 == ((U8*)s)[1] ) ?\
2891                     ( ( ( ((U8*)s)[2] & 0xFE ) == 0x56 ) ? 3 : 0 )          \
2892                 : ( ( 0x42 == ((U8*)s)[1] ) && ( 0x49 == ((U8*)s)[2] || 0x51 == ((U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
2893 : 0 )
2894
2895 /*** GENERATED CODE ***/
2896 #define is_PATWS_cp(cp)                                                     \
2897 ( 0x05 == cp || ( 0x05 < cp &&                                              \
2898 ( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
2899 ( 0x15 == cp || ( 0x15 < cp &&                                              \
2900 ( 0x25 == cp || ( 0x25 < cp &&                                              \
2901 ( 0x40 == cp || ( 0x40 < cp &&                                              \
2902 ( 0x200E == cp || ( 0x200E < cp &&                                          \
2903 ( 0x200F == cp || ( 0x200F < cp &&                                          \
2904 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
2905
2906 #endif  /* EBCDIC POSIX-BC */
2907
2908 #endif /* H_REGCHARCLASS */
2909
2910 /* ex: set ro: */