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