1 /* -*- mode: C; buffer-read-only: t -*-
5 * Copyright (C) 2007, 2011 by Larry Wall and others
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.
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.
18 #ifndef PERL_REGCHARCLASS_H_ /* Guard against nested #includes */
19 #define PERL_REGCHARCLASS_H_
21 #if 'A' == 65 /* ASCII/Latin1 */
23 LNBREAK: Line Break: \R
25 "\x0D\x0A" # CRLF - Network (Windows) line ending
28 /*** GENERATED CODE ***/
29 #define is_LNBREAK_safe(s,e,is_utf8) \
31 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\f') ) ? 1 \
32 : ( '\r' == ((const U8*)s)[0] ) ? \
33 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
35 ( ( 0xC2 == ((const U8*)s)[0] ) ? \
36 ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
37 : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xA8, 0xA9) ) ) ? 3 : 0 )\
38 : ( 0x85 == ((const U8*)s)[0] ) ) \
40 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\f') ) ? 1 \
41 : ( '\r' == ((const U8*)s)[0] ) ? \
42 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
44 ( ( ( 0xC2 == ((const U8*)s)[0] ) && ( 0x85 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
45 : ( 0x85 == ((const U8*)s)[0] ) ) \
47 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\r') ) ? 1 \
48 : ( !( is_utf8 ) ) ? \
49 ( 0x85 == ((const U8*)s)[0] ) \
53 /*** GENERATED CODE ***/
54 #define is_LNBREAK_utf8_safe(s,e) \
56 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\f') ) ? 1 \
57 : ( '\r' == ((const U8*)s)[0] ) ? \
58 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
59 : ( 0xC2 == ((const U8*)s)[0] ) ? \
60 ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
61 : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xA8, 0xA9) ) ) ? 3 : 0 )\
63 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\f') ) ? 1 \
64 : ( '\r' == ((const U8*)s)[0] ) ? \
65 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
66 : ( ( 0xC2 == ((const U8*)s)[0] ) && ( 0x85 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
68 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\r') ) \
71 /*** GENERATED CODE ***/
72 #define is_LNBREAK_latin1_safe(s,e) \
74 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\f') || 0x85 == ((const U8*)s)[0] ) ? 1\
75 : ( '\r' == ((const U8*)s)[0] ) ? \
76 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
79 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\n', '\r') || 0x85 == ((const U8*)s)[0] )\
83 HORIZWS: Horizontal Whitespace: \h \H
87 /*** GENERATED CODE ***/
88 #define is_HORIZWS_high(s) \
89 ( ( 0xE1 == ((const U8*)s)[0] ) ? \
90 ( ( ( 0x9A == ((const U8*)s)[1] ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
91 : ( 0xE2 == ((const U8*)s)[0] ) ? \
92 ( ( 0x80 == ((const U8*)s)[1] ) ? \
93 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x8A) || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
94 : ( ( 0x81 == ((const U8*)s)[1] ) && ( 0x9F == ((const U8*)s)[2] ) ) ? 3 : 0 )\
95 : ( ( ( 0xE3 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )
97 /*** GENERATED CODE ***/
98 #define is_HORIZWS_cp_high(cp) \
99 ( 0x1680 == cp || ( 0x1680 < cp && \
100 ( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
101 ( 0x202F == cp || ( 0x202F < cp && \
102 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
105 VERTWS: Vertical Whitespace: \v \V
109 /*** GENERATED CODE ***/
110 #define is_VERTWS_high(s) \
111 ( ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xA8, 0xA9) ) ) ? 3 : 0 )
113 /*** GENERATED CODE ***/
114 #define is_VERTWS_cp_high(cp) \
115 ( inRANGE_helper_(UV, cp, 0x2028, 0x2029) )
118 XDIGIT: Hexadecimal digits
122 /*** GENERATED CODE ***/
123 #define is_XDIGIT_high(s) \
124 ( ( 0xEF == ((const U8*)s)[0] ) ? \
125 ( ( 0xBC == ((const U8*)s)[1] ) ? \
126 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x90, 0x99) || inRANGE_helper_(U8, ((const U8*)s)[2], 0xA1, 0xA6) ) ? 3 : 0 )\
127 : ( ( 0xBD == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x81, 0x86) ) ) ? 3 : 0 )\
130 /*** GENERATED CODE ***/
131 #define is_XDIGIT_cp_high(cp) \
132 ( inRANGE_helper_(UV, cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp && \
133 ( inRANGE_helper_(UV, cp, 0xFF21, 0xFF26) || inRANGE_helper_(UV, cp, 0xFF41, 0xFF46) ) ) )
136 XPERLSPACE: \p{XPerlSpace}
140 /*** GENERATED CODE ***/
141 #define is_XPERLSPACE_high(s) \
142 ( ( 0xE1 == ((const U8*)s)[0] ) ? \
143 ( ( ( 0x9A == ((const U8*)s)[1] ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
144 : ( 0xE2 == ((const U8*)s)[0] ) ? \
145 ( ( 0x80 == ((const U8*)s)[1] ) ? \
146 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x8A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0xA8, 0xA9) || 0xAF == ((const U8*)s)[2] ) ? 3 : 0 )\
147 : ( ( 0x81 == ((const U8*)s)[1] ) && ( 0x9F == ((const U8*)s)[2] ) ) ? 3 : 0 )\
148 : ( ( ( 0xE3 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( 0x80 == ((const U8*)s)[2] ) ) ? 3 : 0 )
150 /*** GENERATED CODE ***/
151 #define is_XPERLSPACE_cp_high(cp) \
152 ( 0x1680 == cp || ( 0x1680 < cp && \
153 ( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
154 ( inRANGE_helper_(UV, cp, 0x2028, 0x2029) || ( 0x2029 < cp && \
155 ( 0x202F == cp || ( 0x202F < cp && \
156 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) )
159 SPACE: Backwards \p{XPerlSpace}
163 /*** GENERATED CODE ***/
164 #define is_SPACE_utf8_safe_backwards(s,e) \
165 ( ((s) - (e) > 2) ? \
166 ( ( inRANGE_helper_(U8, *((const U8*)s - 1), '\t', '\r') || ' ' == *((const U8*)s - 1) ) ? 1\
167 : ( 0x80 == *((const U8*)s - 1) ) ? \
168 ( ( 0x80 == *((const U8*)s - 2) ) ? \
169 ( ( inRANGE_helper_(U8, *((const U8*)s - 3), 0xE2, 0xE3) ) ? 3 : 0 )\
170 : ( ( 0x9A == *((const U8*)s - 2) ) && ( 0xE1 == *((const U8*)s - 3) ) ) ? 3 : 0 )\
171 : ( inRANGE_helper_(U8, *((const U8*)s - 1), 0x81, 0x84) || inRANGE_helper_(U8, *((const U8*)s - 1), 0x86, 0x8A) || inRANGE_helper_(U8, *((const U8*)s - 1), 0xA8, 0xA9) || 0xAF == *((const U8*)s - 1) ) ?\
172 ( ( ( 0x80 == *((const U8*)s - 2) ) && ( 0xE2 == *((const U8*)s - 3) ) ) ? 3 : 0 )\
173 : ( 0x85 == *((const U8*)s - 1) ) ? \
174 ( ( 0x80 == *((const U8*)s - 2) ) ? \
175 ( ( 0xE2 == *((const U8*)s - 3) ) ? 3 : 0 ) \
176 : ( 0xC2 == *((const U8*)s - 2) ) ? 2 : 0 ) \
177 : ( 0x9F == *((const U8*)s - 1) ) ? \
178 ( ( ( 0x81 == *((const U8*)s - 2) ) && ( 0xE2 == *((const U8*)s - 3) ) ) ? 3 : 0 )\
179 : ( ( 0xA0 == *((const U8*)s - 1) ) && ( 0xC2 == *((const U8*)s - 2) ) ) ? 2 : 0 )\
180 : ((s) - (e) > 1) ? \
181 ( ( inRANGE_helper_(U8, *((const U8*)s - 1), '\t', '\r') || ' ' == *((const U8*)s - 1) ) ? 1\
182 : ( ( 0x85 == *((const U8*)s - 1) || 0xA0 == *((const U8*)s - 1) ) && ( 0xC2 == *((const U8*)s - 2) ) ) ? 2 : 0 )\
183 : ((s) - (e) > 0) ? \
184 ( inRANGE_helper_(U8, *((const U8*)s - 1), '\t', '\r') || ' ' == *((const U8*)s - 1) )\
188 NONCHAR: Non character code points
192 /*** GENERATED CODE ***/
193 #define is_NONCHAR_utf8_safe(s,e) \
194 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xEF == ((const U8*)s)[0] ) ?\
195 ( ( 0xB7 == ((const U8*)s)[1] ) ? \
196 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x90, 0xAF) ) ? 3 : 0 )\
197 : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xBE, 0xBF) ) ) ? 3 : 0 )\
198 : ( 0xF0 == ((const U8*)s)[0] ) ? \
199 ( ( ( ( ((const U8*)s)[1] == 0x9F || ( ( ((const U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xBE, 0xBF) ) ) ? 4 : 0 )\
200 : ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xF1, 0xF3) ) ? \
201 ( ( ( ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xBE, 0xBF) ) ) ? 4 : 0 )\
202 : ( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( 0x8F == ((const U8*)s)[1] ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xBE, 0xBF) ) ) ? 4 : 0 ) : 0 )
205 SHORTER_NON_CHARS: # 3 bytes
210 /*** GENERATED CODE ***/
211 #define is_SHORTER_NON_CHARS_utf8(s) \
212 ( ( 0xEF == ((const U8*)s)[0] ) ? \
213 ( ( 0xB7 == ((const U8*)s)[1] ) ? \
214 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x90, 0xAF) ) ? 3 : 0 ) \
215 : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xBE, 0xBF) ) ) ? 3 : 0 )\
219 LARGER_NON_CHARS: # 4 bytes
238 /*** GENERATED CODE ***/
239 #define is_LARGER_NON_CHARS_utf8(s) \
240 ( ( 0xF0 == ((const U8*)s)[0] ) ? \
241 ( ( ( ( ((const U8*)s)[1] == 0x9F || ( ( ((const U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xBE, 0xBF) ) ) ? 4 : 0 )\
242 : ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xF1, 0xF3) ) ? \
243 ( ( ( ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xBE, 0xBF) ) ) ? 4 : 0 )\
244 : ( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( 0x8F == ((const U8*)s)[1] ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xBE, 0xBF) ) ) ? 4 : 0 )
247 SURROGATE: Surrogate code points
251 /*** GENERATED CODE ***/
252 #define is_SURROGATE_utf8(s) \
253 ( ( ( 0xED == ((const U8*)s)[0] ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0xA0, 0xBF) ) ) ? 3 : 0 )
255 /*** GENERATED CODE ***/
256 #define is_SURROGATE_utf8_safe(s,e) \
257 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0xA0, 0xBF) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0xBF) ) ) ? 3 : 0 )
260 QUOTEMETA: Meta-characters that \Q should quote
264 /*** GENERATED CODE ***/
265 #define is_QUOTEMETA_high(s) \
266 ( ( 0xCD == ((const U8*)s)[0] ) ? \
267 ( ( 0x8F == ((const U8*)s)[1] ) ? 2 : 0 ) \
268 : ( 0xD8 == ((const U8*)s)[0] ) ? \
269 ( ( 0x9C == ((const U8*)s)[1] ) ? 2 : 0 ) \
270 : ( 0xE1 == ((const U8*)s)[0] ) ? \
271 ( ( 0x85 == ((const U8*)s)[1] ) ? \
272 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x9F, 0xA0) ) ? 3 : 0 ) \
273 : ( 0x9A == ((const U8*)s)[1] ) ? \
274 ( ( 0x80 == ((const U8*)s)[2] ) ? 3 : 0 ) \
275 : ( 0x9E == ((const U8*)s)[1] ) ? \
276 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xB4, 0xB5) ) ? 3 : 0 ) \
277 : ( ( 0xA0 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x8B, 0x8F) ) ) ? 3 : 0 )\
278 : ( 0xE2 == ((const U8*)s)[0] ) ? \
279 ( ( 0x80 == ((const U8*)s)[1] ) ? \
280 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0xBE) ) ? 3 : 0 ) \
281 : ( 0x81 == ((const U8*)s)[1] ) ? \
282 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x81, 0x93) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x95, 0xAF) ) ? 3 : 0 )\
283 : ( 0x86 == ((const U8*)s)[1] ) ? \
284 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x90, 0xBF) ) ? 3 : 0 ) \
285 : ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x87, 0x90) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x94, 0x9C) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x9F, 0xAF) || inRANGE_helper_(U8, ((const U8*)s)[1], 0xB8, 0xB9) ) ?\
287 : ( 0x91 == ((const U8*)s)[1] ) ? \
288 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x9F) ) ? 3 : 0 ) \
289 : ( 0x9D == ((const U8*)s)[1] ) ? \
290 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0xB5) ) ? 3 : 0 ) \
291 : ( ( 0x9E == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x94, 0xBF) ) ) ? 3 : 0 )\
292 : ( 0xE3 == ((const U8*)s)[0] ) ? \
293 ( ( 0x80 == ((const U8*)s)[1] ) ? \
294 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x83) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x88, 0xA0) || 0xB0 == ((const U8*)s)[2] ) ? 3 : 0 )\
295 : ( ( 0x85 == ((const U8*)s)[1] ) && ( 0xA4 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
296 : ( 0xEF == ((const U8*)s)[0] ) ? \
297 ( ( 0xB4 == ((const U8*)s)[1] ) ? \
298 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xBE, 0xBF) ) ? 3 : 0 ) \
299 : ( 0xB8 == ((const U8*)s)[1] ) ? \
300 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x8F) ) ? 3 : 0 ) \
301 : ( 0xB9 == ((const U8*)s)[1] ) ? \
302 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x85, 0x86) ) ? 3 : 0 ) \
303 : ( 0xBB == ((const U8*)s)[1] ) ? \
304 ( ( 0xBF == ((const U8*)s)[2] ) ? 3 : 0 ) \
305 : ( 0xBE == ((const U8*)s)[1] ) ? \
306 ( ( 0xA0 == ((const U8*)s)[2] ) ? 3 : 0 ) \
307 : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xB0, 0xB8) ) ) ? 3 : 0 )\
308 : ( 0xF0 == ((const U8*)s)[0] ) ? \
309 ( ( 0x9B == ((const U8*)s)[1] ) ? \
310 ( ( ( 0xB2 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xA0, 0xA3) ) ) ? 4 : 0 )\
311 : ( ( ( 0x9D == ((const U8*)s)[1] ) && ( 0x85 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xB3, 0xBA) ) ) ? 4 : 0 )\
312 : ( ( 0xF3 == ((const U8*)s)[0] ) && ( 0xA0 == ((const U8*)s)[1] ) ) ? 4 : 0 )
315 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
317 %regcharclass_multi_char_folds::multi_char_folds('u', 'a')
319 /*** GENERATED CODE ***/
320 #define is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
321 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
322 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
323 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )
326 /*** GENERATED CODE ***/
327 #define is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
328 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
329 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
330 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
331 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
332 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
333 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
334 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
335 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ? 2\
336 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 3 : 0 )\
337 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
338 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
339 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
340 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
341 : ( 0xC5 == ((const U8*)s)[0] ) ? \
342 ( ( 0xBF == ((const U8*)s)[1] ) ? \
343 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[2], 's', 't') ) ? 3\
344 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
346 : ( 0xCA == ((const U8*)s)[0] ) ? \
347 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
348 : ( 0xCE == ((const U8*)s)[0] ) ? \
349 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
350 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
351 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
352 ( ( 0xCD == ((const U8*)s)[2] ) ? \
353 ( ( 0x82 == ((const U8*)s)[3] ) ? \
354 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
356 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
357 : ( 0xB9 == ((const U8*)s)[1] ) ? \
358 ( ( 0xCC == ((const U8*)s)[2] ) ? \
359 ( ( 0x88 == ((const U8*)s)[3] ) ? \
360 ( ( 0xCC == ((const U8*)s)[4] ) ? \
361 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
362 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
364 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
366 : ( 0xCF == ((const U8*)s)[0] ) ? \
367 ( ( 0x81 == ((const U8*)s)[1] ) ? \
368 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
369 : ( 0x85 == ((const U8*)s)[1] ) ? \
370 ( ( 0xCC == ((const U8*)s)[2] ) ? \
371 ( ( 0x88 == ((const U8*)s)[3] ) ? \
372 ( ( 0xCC == ((const U8*)s)[4] ) ? \
373 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
374 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
375 : ( 0x93 == ((const U8*)s)[3] ) ? \
376 ( ( 0xCC == ((const U8*)s)[4] ) ? \
377 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 4 )\
378 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
380 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
381 : ( 0x89 == ((const U8*)s)[1] ) ? \
382 ( ( 0xCD == ((const U8*)s)[2] ) ? \
383 ( ( 0x82 == ((const U8*)s)[3] ) ? \
384 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
386 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
387 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
388 : ( 0xD5 == ((const U8*)s)[0] ) ? \
389 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
390 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
391 : ( 0xB4 == ((const U8*)s)[1] ) ? \
392 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
393 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
394 : ( 0xE1 == ((const U8*)s)[0] ) ? \
395 ( ( 0xBC == ((const U8*)s)[1] ) ? \
396 ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
397 : ( ( ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
401 /*** GENERATED CODE ***/
402 #define is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
403 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
404 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
405 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
406 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
407 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
408 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
409 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
410 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
411 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
412 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
413 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
414 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
415 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
416 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ? 2\
417 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 3 : 0 )\
418 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
419 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
420 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
421 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
422 : ( 0xC5 == ((const U8*)s)[0] ) ? \
423 ( ( 0xBF == ((const U8*)s)[1] ) ? \
424 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[2], 's', 't') ) ? 3\
425 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
427 : ( 0xCA == ((const U8*)s)[0] ) ? \
428 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
429 : ( 0xCE == ((const U8*)s)[0] ) ? \
430 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
431 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
432 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
433 ( ( 0xCD == ((const U8*)s)[2] ) ? \
434 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
435 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
436 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
437 : ( 0xCF == ((const U8*)s)[0] ) ? \
438 ( ( 0x81 == ((const U8*)s)[1] ) ? \
439 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
440 : ( 0x85 == ((const U8*)s)[1] ) ? \
441 ( ( 0xCC == ((const U8*)s)[2] ) ? \
442 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
443 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
444 : ( 0x89 == ((const U8*)s)[1] ) ? \
445 ( ( 0xCD == ((const U8*)s)[2] ) ? \
446 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
447 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
448 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
449 : ( 0xD5 == ((const U8*)s)[0] ) ? \
450 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
451 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
452 : ( 0xB4 == ((const U8*)s)[1] ) ? \
453 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
454 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
458 /*** GENERATED CODE ***/
459 #define is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
461 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
462 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
463 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
464 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
465 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
466 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
467 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
468 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
469 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
470 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
471 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
472 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
473 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
474 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ? 2\
475 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 3 : 0 )\
476 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
477 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
478 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
479 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
480 : ( 0xC5 == ((const U8*)s)[0] ) ? \
481 ( ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[2], 's', 't') ) ) ? 3 : 0 )\
482 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
484 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
485 ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
486 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ) ? 2 : 0 )\
490 /*** GENERATED CODE ***/
491 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
493 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
494 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
495 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )\
497 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
498 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
499 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
500 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
501 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
502 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
503 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
504 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
505 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
506 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
507 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
508 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
509 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
510 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ? 2\
511 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 3 : 0 )\
512 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
513 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
514 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
515 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
516 : ( 0xC5 == ((const U8*)s)[0] ) ? \
517 ( ( 0xBF == ((const U8*)s)[1] ) ? \
518 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[2], 's', 't') ) ? 3\
519 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
521 : ( 0xCA == ((const U8*)s)[0] ) ? \
522 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
523 : ( 0xCE == ((const U8*)s)[0] ) ? \
524 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
525 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
526 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
527 ( ( 0xCD == ((const U8*)s)[2] ) ? \
528 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
529 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
530 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
531 : ( 0xCF == ((const U8*)s)[0] ) ? \
532 ( ( 0x81 == ((const U8*)s)[1] ) ? \
533 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
534 : ( 0x85 == ((const U8*)s)[1] ) ? \
535 ( ( 0xCC == ((const U8*)s)[2] ) ? \
536 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
537 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
538 : ( 0x89 == ((const U8*)s)[1] ) ? \
539 ( ( 0xCD == ((const U8*)s)[2] ) ? \
540 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
541 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
542 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
543 : ( 0xD5 == ((const U8*)s)[0] ) ? \
544 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
545 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
546 : ( 0xB4 == ((const U8*)s)[1] ) ? \
547 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
548 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
549 : ( 0xE1 == ((const U8*)s)[0] ) ? \
550 ( ( 0xBC == ((const U8*)s)[1] ) ? \
551 ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
552 : ( ( ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
554 : ((e)-(s) > 3) ? is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )
556 /*** GENERATED CODE ***/
557 #define what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
558 ( ( 0x81 == ((const U8*)s)[1] ) ? \
559 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
560 : ( 0x85 == ((const U8*)s)[1] ) ? \
561 ( ( 0xCC == ((const U8*)s)[2] ) ? \
562 ( ( 0x88 == ((const U8*)s)[3] ) ? \
563 ( ( 0xCC == ((const U8*)s)[4] ) ? \
564 ( ( 0x80 == ((const U8*)s)[5] ) ? 0x1FE2 \
565 : ( 0x81 == ((const U8*)s)[5] ) ? 0x3B0 : 0 ) \
566 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 0x1FE7 : 0 )\
567 : ( 0x93 == ((const U8*)s)[3] ) ? \
568 ( ( 0xCC == ((const U8*)s)[4] ) ? \
569 ( ( 0x80 == ((const U8*)s)[5] ) ? 0x1F52 \
570 : ( 0x81 == ((const U8*)s)[5] ) ? 0x1F54 : 0x1F50 ) \
571 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 0x1F56 : 0x1F50 )\
573 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
574 : ( 0x89 == ((const U8*)s)[1] ) ? \
575 ( ( 0xCD == ((const U8*)s)[2] ) ? \
576 ( ( 0x82 == ((const U8*)s)[3] ) ? \
577 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 0x1FF7 : 0x1FF6 )\
579 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
580 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )
583 /*** GENERATED CODE ***/
584 #define what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
585 ( ( 0xD5 == ((const U8*)s)[0] ) ? \
586 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
587 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x587 : 0 )\
588 : ( 0xB4 == ((const U8*)s)[1] ) ? \
589 ( ( 0xD5 == ((const U8*)s)[2] ) ? \
590 ( ( 0xA5 == ((const U8*)s)[3] ) ? 0xFB14 \
591 : ( 0xAB == ((const U8*)s)[3] ) ? 0xFB15 \
592 : ( 0xAD == ((const U8*)s)[3] ) ? 0xFB17 \
593 : ( 0xB6 == ((const U8*)s)[3] ) ? 0xFB13 : 0 ) \
595 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 0xFB16 : 0 )\
596 : ( 0xE1 == ((const U8*)s)[0] ) ? \
597 ( ( 0xBC == ((const U8*)s)[1] ) ? \
598 ( ( 0x80 == ((const U8*)s)[2] ) ? \
599 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
600 : ( 0x81 == ((const U8*)s)[2] ) ? \
601 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
602 : ( 0x82 == ((const U8*)s)[2] ) ? \
603 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
604 : ( 0x83 == ((const U8*)s)[2] ) ? \
605 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
606 : ( 0x84 == ((const U8*)s)[2] ) ? \
607 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
608 : ( 0x85 == ((const U8*)s)[2] ) ? \
609 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
610 : ( 0x86 == ((const U8*)s)[2] ) ? \
611 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
612 : ( 0x87 == ((const U8*)s)[2] ) ? \
613 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
614 : ( 0xA0 == ((const U8*)s)[2] ) ? \
615 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
616 : ( 0xA1 == ((const U8*)s)[2] ) ? \
617 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
618 : ( 0xA2 == ((const U8*)s)[2] ) ? \
619 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
620 : ( 0xA3 == ((const U8*)s)[2] ) ? \
621 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
622 : ( 0xA4 == ((const U8*)s)[2] ) ? \
623 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
624 : ( 0xA5 == ((const U8*)s)[2] ) ? \
625 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
626 : ( 0xA6 == ((const U8*)s)[2] ) ? \
627 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
628 : ( ( ( 0xA7 == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
629 : ( 0xBD == ((const U8*)s)[1] ) ? \
630 ( ( 0xA0 == ((const U8*)s)[2] ) ? \
631 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
632 : ( 0xA1 == ((const U8*)s)[2] ) ? \
633 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
634 : ( 0xA2 == ((const U8*)s)[2] ) ? \
635 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
636 : ( 0xA3 == ((const U8*)s)[2] ) ? \
637 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
638 : ( 0xA4 == ((const U8*)s)[2] ) ? \
639 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
640 : ( 0xA5 == ((const U8*)s)[2] ) ? \
641 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
642 : ( 0xA6 == ((const U8*)s)[2] ) ? \
643 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
644 : ( 0xA7 == ((const U8*)s)[2] ) ? \
645 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
646 : ( 0xB0 == ((const U8*)s)[2] ) ? \
647 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
648 : ( 0xB4 == ((const U8*)s)[2] ) ? \
649 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
650 : ( ( ( 0xBC == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
655 /*** GENERATED CODE ***/
656 #define what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
657 ( ( 0x81 == ((const U8*)s)[1] ) ? \
658 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
659 : ( 0x85 == ((const U8*)s)[1] ) ? \
660 ( ( 0xCC == ((const U8*)s)[2] ) ? \
661 ( ( 0x93 == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
662 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
663 : ( 0x89 == ((const U8*)s)[1] ) ? \
664 ( ( 0xCD == ((const U8*)s)[2] ) ? \
665 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
666 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
667 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )
670 /*** GENERATED CODE ***/
671 #define what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
672 ( ( 0xD5 == ((const U8*)s)[0] ) ? \
673 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
674 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x587 : 0 )\
675 : ( 0xB4 == ((const U8*)s)[1] ) ? \
676 ( ( 0xD5 == ((const U8*)s)[2] ) ? \
677 ( ( 0xA5 == ((const U8*)s)[3] ) ? 0xFB14 \
678 : ( 0xAB == ((const U8*)s)[3] ) ? 0xFB15 \
679 : ( 0xAD == ((const U8*)s)[3] ) ? 0xFB17 \
680 : ( 0xB6 == ((const U8*)s)[3] ) ? 0xFB13 : 0 ) \
682 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 0xFB16 : 0 )\
683 : ( 0xE1 == ((const U8*)s)[0] ) ? \
684 ( ( 0xBC == ((const U8*)s)[1] ) ? \
685 ( ( 0x80 == ((const U8*)s)[2] ) ? \
686 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
687 : ( 0x81 == ((const U8*)s)[2] ) ? \
688 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
689 : ( 0x82 == ((const U8*)s)[2] ) ? \
690 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
691 : ( 0x83 == ((const U8*)s)[2] ) ? \
692 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
693 : ( 0x84 == ((const U8*)s)[2] ) ? \
694 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
695 : ( 0x85 == ((const U8*)s)[2] ) ? \
696 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
697 : ( 0x86 == ((const U8*)s)[2] ) ? \
698 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
699 : ( 0x87 == ((const U8*)s)[2] ) ? \
700 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
701 : ( 0xA0 == ((const U8*)s)[2] ) ? \
702 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
703 : ( 0xA1 == ((const U8*)s)[2] ) ? \
704 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
705 : ( 0xA2 == ((const U8*)s)[2] ) ? \
706 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
707 : ( 0xA3 == ((const U8*)s)[2] ) ? \
708 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
709 : ( 0xA4 == ((const U8*)s)[2] ) ? \
710 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
711 : ( 0xA5 == ((const U8*)s)[2] ) ? \
712 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
713 : ( 0xA6 == ((const U8*)s)[2] ) ? \
714 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
715 : ( ( ( 0xA7 == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
716 : ( 0xBD == ((const U8*)s)[1] ) ? \
717 ( ( 0xA0 == ((const U8*)s)[2] ) ? \
718 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
719 : ( 0xA1 == ((const U8*)s)[2] ) ? \
720 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
721 : ( 0xA2 == ((const U8*)s)[2] ) ? \
722 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
723 : ( 0xA3 == ((const U8*)s)[2] ) ? \
724 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
725 : ( 0xA4 == ((const U8*)s)[2] ) ? \
726 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
727 : ( 0xA5 == ((const U8*)s)[2] ) ? \
728 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
729 : ( 0xA6 == ((const U8*)s)[2] ) ? \
730 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
731 : ( 0xA7 == ((const U8*)s)[2] ) ? \
732 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
733 : ( 0xB0 == ((const U8*)s)[2] ) ? \
734 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
735 : ( 0xB4 == ((const U8*)s)[2] ) ? \
736 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
737 : ( ( ( 0xBC == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
742 /*** GENERATED CODE ***/
743 #define what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) \
744 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
745 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
746 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
747 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
748 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
749 : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
750 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
751 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
752 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
753 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
754 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
755 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
756 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
757 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
758 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
759 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
760 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
761 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
762 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
763 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
764 : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
765 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
766 : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
767 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
768 : ( 0xC5 == ((const U8*)s)[0] ) ? \
769 ( ( 0xBF == ((const U8*)s)[1] ) ? \
770 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
771 : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 \
772 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 0xDF : 0 )\
774 : ( 0xCA == ((const U8*)s)[0] ) ? \
775 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
776 : ( 0xCE == ((const U8*)s)[0] ) ? \
777 ( ( 0xAC == ((const U8*)s)[1] ) ? \
778 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
779 : ( 0xAE == ((const U8*)s)[1] ) ? \
780 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
781 : ( 0xB1 == ((const U8*)s)[1] ) ? \
782 ( ( 0xCD == ((const U8*)s)[2] ) ? \
783 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
784 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
785 : ( 0xB7 == ((const U8*)s)[1] ) ? \
786 ( ( 0xCD == ((const U8*)s)[2] ) ? \
787 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
788 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
789 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
790 : ( 0xCF == ((const U8*)s)[0] ) ? \
791 ( ( 0x81 == ((const U8*)s)[1] ) ? \
792 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
793 : ( 0x85 == ((const U8*)s)[1] ) ? \
794 ( ( 0xCC == ((const U8*)s)[2] ) ? \
795 ( ( 0x93 == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
796 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
797 : ( 0x89 == ((const U8*)s)[1] ) ? \
798 ( ( 0xCD == ((const U8*)s)[2] ) ? \
799 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
800 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
801 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )\
802 : ( 0xD5 == ((const U8*)s)[0] ) ? \
803 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
804 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x587 : 0 )\
805 : ( 0xB4 == ((const U8*)s)[1] ) ? \
806 ( ( 0xD5 == ((const U8*)s)[2] ) ? \
807 ( ( 0xA5 == ((const U8*)s)[3] ) ? 0xFB14 \
808 : ( 0xAB == ((const U8*)s)[3] ) ? 0xFB15 \
809 : ( 0xAD == ((const U8*)s)[3] ) ? 0xFB17 \
810 : ( 0xB6 == ((const U8*)s)[3] ) ? 0xFB13 : 0 ) \
812 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 0xFB16 : 0 )\
816 /*** GENERATED CODE ***/
817 #define what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) \
819 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
820 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
821 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
822 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
823 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
824 : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
825 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
826 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
827 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
828 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
829 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
830 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
831 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
832 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
833 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
834 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
835 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
836 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
837 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
838 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
839 : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
840 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
841 : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
842 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
843 : ( 0xC5 == ((const U8*)s)[0] ) ? \
844 ( ( 0xBF == ((const U8*)s)[1] ) ? \
845 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
846 : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 : 0 ) \
848 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
850 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
851 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 0xFB00 \
852 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
853 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
854 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
855 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
856 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 : 0 ) \
861 /*** GENERATED CODE ***/
862 #define what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) \
863 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
864 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
865 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
866 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
867 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
868 : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
869 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
870 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
871 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
872 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
873 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
874 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
875 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
876 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
877 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
878 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
879 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
880 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
881 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
882 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
883 : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
884 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
885 : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
886 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
887 : ( 0xC5 == ((const U8*)s)[0] ) ? \
888 ( ( 0xBF == ((const U8*)s)[1] ) ? \
889 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
890 : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 \
891 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 0xDF : 0 )\
893 : ( 0xCA == ((const U8*)s)[0] ) ? \
894 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
895 : ( 0xCE == ((const U8*)s)[0] ) ? \
896 ( ( 0xAC == ((const U8*)s)[1] ) ? \
897 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
898 : ( 0xAE == ((const U8*)s)[1] ) ? \
899 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
900 : ( 0xB1 == ((const U8*)s)[1] ) ? \
901 ( ( 0xCD == ((const U8*)s)[2] ) ? \
902 ( ( 0x82 == ((const U8*)s)[3] ) ? \
903 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 0x1FB7 : 0x1FB6 )\
905 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
906 : ( 0xB7 == ((const U8*)s)[1] ) ? \
907 ( ( 0xCD == ((const U8*)s)[2] ) ? \
908 ( ( 0x82 == ((const U8*)s)[3] ) ? \
909 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 0x1FC7 : 0x1FC6 )\
911 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
912 : ( 0xB9 == ((const U8*)s)[1] ) ? \
913 ( ( 0xCC == ((const U8*)s)[2] ) ? \
914 ( ( 0x88 == ((const U8*)s)[3] ) ? \
915 ( ( 0xCC == ((const U8*)s)[4] ) ? \
916 ( ( 0x80 == ((const U8*)s)[5] ) ? 0x1FD2 \
917 : ( 0x81 == ((const U8*)s)[5] ) ? 0x390 : 0 ) \
918 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 0x1FD7 : 0 )\
920 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
922 : ( 0xCF == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )
925 /*** GENERATED CODE ***/
926 #define what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) \
928 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
929 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
930 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
931 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
932 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
933 : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
934 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
935 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
936 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
937 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
938 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
939 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
940 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
941 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
942 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
943 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
944 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
945 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
946 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
947 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
948 : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
949 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
950 : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
951 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
952 : ( 0xC5 == ((const U8*)s)[0] ) ? \
953 ( ( 0xBF == ((const U8*)s)[1] ) ? \
954 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
955 : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 \
956 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 0xDF : 0 )\
958 : ( 0xCA == ((const U8*)s)[0] ) ? \
959 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
960 : ( 0xCE == ((const U8*)s)[0] ) ? \
961 ( ( 0xAC == ((const U8*)s)[1] ) ? \
962 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
963 : ( 0xAE == ((const U8*)s)[1] ) ? \
964 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
965 : ( 0xB1 == ((const U8*)s)[1] ) ? \
966 ( ( 0xCD == ((const U8*)s)[2] ) ? \
967 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
968 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
969 : ( 0xB7 == ((const U8*)s)[1] ) ? \
970 ( ( 0xCD == ((const U8*)s)[2] ) ? \
971 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
972 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
973 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
974 : ( 0xCF == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )\
975 : ((e)-(s) > 3) ? what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) )
978 /*** GENERATED CODE ***/
979 #define what_MULTI_CHAR_FOLD_utf8_safe(s,e) \
980 ( ((e)-(s) > 5) ? what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) )
983 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
985 %regcharclass_multi_char_folds::multi_char_folds('l', 'a')
987 /*** GENERATED CODE ***/
988 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
990 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
991 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
992 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
993 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
994 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ) ? 2 : 0 )\
996 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
997 ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
998 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ) ? 2 : 0 )\
1001 /*** GENERATED CODE ***/
1002 #define what_MULTI_CHAR_FOLD_latin1_safe(s,e) \
1004 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
1005 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
1006 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
1007 : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
1008 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
1009 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
1010 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
1011 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
1012 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 : 0 ) \
1015 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
1016 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 0xFB00 \
1017 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
1018 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
1019 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
1020 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
1021 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 : 0 ) \
1026 THREE_CHAR_FOLD: A three-character multi-char fold
1028 %regcharclass_multi_char_folds::multi_char_folds('u', '3')
1030 /*** GENERATED CODE ***/
1031 #define is_THREE_CHAR_FOLD_utf8_safe(s,e) \
1033 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
1034 ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) && ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ) ? 3 : 0 )\
1035 : ( 0xCE == ((const U8*)s)[0] ) ? \
1036 ( ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
1037 ( ( ( ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) && ( 0xCE == ((const U8*)s)[4] ) ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1038 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCC == ((const U8*)s)[2] ) ) && ( 0x88 == ((const U8*)s)[3] ) ) ? ( ( 0xCC == ((const U8*)s)[4] ) ?\
1039 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
1040 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
1041 : ( 0xCF == ((const U8*)s)[0] ) ? \
1042 ( ( 0x85 == ((const U8*)s)[1] ) ? \
1043 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x88 == ((const U8*)s)[3] || 0x93 == ((const U8*)s)[3] ) ) ? ( ( 0xCC == ((const U8*)s)[4] ) ?\
1044 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
1045 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
1046 : ( ( ( ( ( 0x89 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) && ( 0xCE == ((const U8*)s)[4] ) ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1048 : ( ( ( ((e)-(s) > 2) && ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ) && ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ) && ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ) ? 3 : 0 )
1051 THREE_CHAR_FOLD: A three-character multi-char fold
1053 %regcharclass_multi_char_folds::multi_char_folds('l', '3')
1055 /*** GENERATED CODE ***/
1056 #define is_THREE_CHAR_FOLD_latin1_safe(s,e) \
1057 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ) && ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ) && ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ) ? 3 : 0 )
1060 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
1062 %regcharclass_multi_char_folds::multi_char_folds('u', 'h')
1064 /*** GENERATED CODE ***/
1065 #define is_THREE_CHAR_FOLD_HEAD_utf8_safe(s,e) \
1067 ( ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ? 1\
1068 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
1069 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
1070 : ( 0xC5 == ((const U8*)s)[0] ) ? \
1071 ( ( 0xBF == ((const U8*)s)[1] ) ? 2 : 0 ) \
1072 : ( 0xCA == ((const U8*)s)[0] ) ? \
1073 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
1074 : ( 0xCE == ((const U8*)s)[0] ) ? \
1075 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? 2 \
1076 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
1077 ( ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1078 : ( 0xB9 == ((const U8*)s)[1] ) ? \
1079 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x88 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1081 : ( 0xCF == ((const U8*)s)[0] ) ? \
1082 ( ( 0x81 == ((const U8*)s)[1] || 0x8E == ((const U8*)s)[1] ) ? 2 \
1083 : ( 0x85 == ((const U8*)s)[1] ) ? \
1084 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x88 == ((const U8*)s)[3] || 0x93 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1085 : ( 0x89 == ((const U8*)s)[1] ) ? \
1086 ( ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1088 : ( 0xD5 == ((const U8*)s)[0] ) ? \
1089 ( ( 0xA5 == ((const U8*)s)[1] || 0xB4 == ((const U8*)s)[1] || 0xBE == ((const U8*)s)[1] ) ? 2 : 0 )\
1090 : ( 0xE1 == ((const U8*)s)[0] ) ? \
1091 ( ( 0xBC == ((const U8*)s)[1] ) ? \
1092 ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) ? 3 : 0 ) \
1093 : ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) ? 3 : 0 )\
1096 ( ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ? 1\
1097 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
1098 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
1099 : ( 0xC5 == ((const U8*)s)[0] ) ? \
1100 ( ( 0xBF == ((const U8*)s)[1] ) ? 2 : 0 ) \
1101 : ( 0xCA == ((const U8*)s)[0] ) ? \
1102 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
1103 : ( 0xCE == ((const U8*)s)[0] ) ? \
1104 ( ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) || ( ( ((const U8*)s)[1] & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0xB7 ) ? 2 : 0 )\
1105 : ( 0xCF == ((const U8*)s)[0] ) ? \
1106 ( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x81 ) || ((const U8*)s)[1] == 0x89 || ((const U8*)s)[1] == 0x8E ) ? 2 : 0 )\
1107 : ( 0xD5 == ((const U8*)s)[0] ) ? \
1108 ( ( 0xA5 == ((const U8*)s)[1] || 0xB4 == ((const U8*)s)[1] || 0xBE == ((const U8*)s)[1] ) ? 2 : 0 )\
1109 : ( 0xE1 == ((const U8*)s)[0] ) ? \
1110 ( ( 0xBC == ((const U8*)s)[1] ) ? \
1111 ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) ? 3 : 0 ) \
1112 : ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) ? 3 : 0 )\
1115 ( ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ? 1\
1116 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
1117 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
1118 : ( 0xC5 == ((const U8*)s)[0] ) ? \
1119 ( ( 0xBF == ((const U8*)s)[1] ) ? 2 : 0 ) \
1120 : ( 0xCA == ((const U8*)s)[0] ) ? \
1121 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
1122 : ( 0xCE == ((const U8*)s)[0] ) ? \
1123 ( ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) || ( ( ((const U8*)s)[1] & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0xB7 ) ? 2 : 0 )\
1124 : ( 0xCF == ((const U8*)s)[0] ) ? \
1125 ( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x81 ) || ((const U8*)s)[1] == 0x89 || ((const U8*)s)[1] == 0x8E ) ? 2 : 0 )\
1126 : ( ( 0xD5 == ((const U8*)s)[0] ) && ( 0xA5 == ((const U8*)s)[1] || 0xB4 == ((const U8*)s)[1] || 0xBE == ((const U8*)s)[1] ) ) ? 2 : 0 )\
1128 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) )\
1132 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
1134 %regcharclass_multi_char_folds::multi_char_folds('l', 'h')
1136 /*** GENERATED CODE ***/
1137 #define is_THREE_CHAR_FOLD_HEAD_latin1_safe(s,e) \
1139 ( ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ? 1\
1140 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
1141 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
1144 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) || ( ( ((const U8*)s)[0] & 0xDE ) == 'H' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) || ( ( ((const U8*)s)[0] & 0xDB ) == 'S' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) )\
1148 FOLDS_TO_MULTI: characters that fold to multi-char strings
1150 \p{_Perl_Folds_To_Multi_Char}
1152 /*** GENERATED CODE ***/
1153 #define is_FOLDS_TO_MULTI_utf8(s) \
1154 ( ( 0xC3 == ((const U8*)s)[0] ) ? \
1155 ( ( 0x9F == ((const U8*)s)[1] ) ? 2 : 0 ) \
1156 : ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ? \
1157 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1158 : ( 0xC5 == ((const U8*)s)[0] ) ? \
1159 ( ( 0x89 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1160 : ( 0xCE == ((const U8*)s)[0] ) ? \
1161 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x90 ) ? 2 : 0 ) \
1162 : ( 0xD6 == ((const U8*)s)[0] ) ? \
1163 ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1164 : ( 0xE1 == ((const U8*)s)[0] ) ? \
1165 ( ( 0xBA == ((const U8*)s)[1] ) ? \
1166 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x96, 0x9A) || 0x9E == ((const U8*)s)[2] ) ? 3 : 0 )\
1167 : ( 0xBD == ((const U8*)s)[1] ) ? \
1168 ( ( ( ((const U8*)s)[2] & 0xF9 ) == 0x90 ) ? 3 : 0 ) \
1169 : ( 0xBE == ((const U8*)s)[1] ) ? \
1170 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0xAF) || inRANGE_helper_(U8, ((const U8*)s)[2], 0xB2, 0xB4) || inRANGE_helper_(U8, ((const U8*)s)[2], 0xB6, 0xB7) || 0xBC == ((const U8*)s)[2] ) ? 3 : 0 )\
1171 : ( ( 0xBF == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xCA ) == 0x82 ) || ( ( ((const U8*)s)[2] & 0xF7 ) == 0x84 ) || ((const U8*)s)[2] == 0xA4 || ( ( ((const U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
1172 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x86) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x93, 0x97) ) ) ? 3 : 0 )
1175 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1177 \p{_Perl_Problematic_Locale_Folds}
1179 /*** GENERATED CODE ***/
1180 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
1181 ( ( ((const U8*)s)[0] <= 0x7F ) ? 1 \
1182 : ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xC2, 0xC3) ) ? \
1184 : ( 0xC4 == ((const U8*)s)[0] ) ? \
1185 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0xB0, 0xB1) ) ? 2 : 0 ) \
1186 : ( 0xC5 == ((const U8*)s)[0] ) ? \
1187 ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
1188 : ( 0xC7 == ((const U8*)s)[0] ) ? \
1189 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1190 : ( 0xCC == ((const U8*)s)[0] ) ? \
1191 ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1192 : ( 0xCE == ((const U8*)s)[0] ) ? \
1193 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
1194 : ( 0xE1 == ((const U8*)s)[0] ) ? \
1195 ( ( ( 0xBA == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x96, 0x9A) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1196 : ( 0xE2 == ((const U8*)s)[0] ) ? \
1197 ( ( ( 0x84 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xAA, 0xAB) ) ) ? 3 : 0 )\
1198 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x86) ) ) ? 3 : 0 )
1200 /*** GENERATED CODE ***/
1201 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
1202 ( cp <= 0xFF || ( 0xFF < cp && \
1203 ( inRANGE_helper_(UV, cp, 0x130, 0x131) || ( 0x131 < cp && \
1204 ( 0x149 == cp || ( 0x149 < cp && \
1205 ( 0x178 == cp || ( 0x178 < cp && \
1206 ( 0x17F == cp || ( 0x17F < cp && \
1207 ( 0x1F0 == cp || ( 0x1F0 < cp && \
1208 ( 0x307 == cp || ( 0x307 < cp && \
1209 ( 0x39C == cp || ( 0x39C < cp && \
1210 ( 0x3BC == cp || ( 0x3BC < cp && \
1211 ( inRANGE_helper_(UV, cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
1212 ( 0x1E9E == cp || ( 0x1E9E < cp && \
1213 ( inRANGE_helper_(UV, cp, 0x212A, 0x212B) || inRANGE_helper_(UV, cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1216 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1218 \p{_Perl_Problematic_Locale_Foldeds_Start}
1220 /*** GENERATED CODE ***/
1221 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
1222 ( ( ((const U8*)s)[0] <= 0x7F ) ? 1 \
1223 : ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xC2, 0xC3) ) ? \
1225 : ( 0xC4 == ((const U8*)s)[0] ) ? \
1226 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0xB0, 0xB1) ) ? 2 : 0 ) \
1227 : ( 0xC5 == ((const U8*)s)[0] ) ? \
1228 ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
1229 : ( 0xC7 == ((const U8*)s)[0] ) ? \
1230 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1231 : ( 0xCA == ((const U8*)s)[0] ) ? \
1232 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
1233 : ( 0xCE == ((const U8*)s)[0] ) ? \
1234 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
1235 : ( 0xE1 == ((const U8*)s)[0] ) ? \
1236 ( ( ( 0xBA == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x96, 0x9A) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1237 : ( 0xE2 == ((const U8*)s)[0] ) ? \
1238 ( ( ( 0x84 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xAA, 0xAB) ) ) ? 3 : 0 )\
1239 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x86) ) ) ? 3 : 0 )
1241 /*** GENERATED CODE ***/
1242 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
1243 ( cp <= 0xFF || ( 0xFF < cp && \
1244 ( inRANGE_helper_(UV, cp, 0x130, 0x131) || ( 0x131 < cp && \
1245 ( 0x149 == cp || ( 0x149 < cp && \
1246 ( 0x178 == cp || ( 0x178 < cp && \
1247 ( 0x17F == cp || ( 0x17F < cp && \
1248 ( 0x1F0 == cp || ( 0x1F0 < cp && \
1249 ( 0x2BC == cp || ( 0x2BC < cp && \
1250 ( 0x39C == cp || ( 0x39C < cp && \
1251 ( 0x3BC == cp || ( 0x3BC < cp && \
1252 ( inRANGE_helper_(UV, cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
1253 ( 0x1E9E == cp || ( 0x1E9E < cp && \
1254 ( inRANGE_helper_(UV, cp, 0x212A, 0x212B) || inRANGE_helper_(UV, cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1257 PATWS: pattern white space
1261 /*** GENERATED CODE ***/
1262 #define is_PATWS_safe(s,e,is_utf8) \
1263 ( ( LIKELY((e) > (s)) ) ? \
1264 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\t', '\r') || ' ' == ((const U8*)s)[0] ) ? 1\
1266 ( 0x85 == ((const U8*)s)[0] ) \
1267 : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ? \
1268 ( ( 0xC2 == ((const U8*)s)[0] ) ? \
1269 ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1270 : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x8E, 0x8F) || inRANGE_helper_(U8, ((const U8*)s)[2], 0xA8, 0xA9) ) ) ? 3 : 0 )\
1275 HANGUL_ED: Hangul syllables whose first UTF-8 byte is \xED
1279 /*** GENERATED CODE ***/
1280 #define is_HANGUL_ED_utf8_safe(s,e) \
1281 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x80, 0x9F) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0xBF) ) ) ? 3 : 0 )
1283 #endif /* ASCII/Latin1 */
1285 #if 'A' == 193 /* EBCDIC 1047 */ \
1286 && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
1287 && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
1288 && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
1290 LNBREAK: Line Break: \R
1292 "\x0D\x0A" # CRLF - Network (Windows) line ending
1295 /*** GENERATED CODE ***/
1296 #define is_LNBREAK_safe(s,e,is_utf8) \
1298 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1299 : ( '\r' == ((const U8*)s)[0] ) ? \
1300 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
1301 : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )\
1303 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1304 : ( '\r' == ((const U8*)s)[0] ) ? \
1305 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
1308 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1311 /*** GENERATED CODE ***/
1312 #define is_LNBREAK_utf8_safe(s,e) \
1314 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1315 : ( '\r' == ((const U8*)s)[0] ) ? \
1316 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
1317 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )\
1319 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1320 : ( '\r' == ((const U8*)s)[0] ) ? \
1321 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
1324 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1327 /*** GENERATED CODE ***/
1328 #define is_LNBREAK_latin1_safe(s,e) \
1330 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1331 : ( '\r' == ((const U8*)s)[0] ) ? \
1332 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
1335 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1339 HORIZWS: Horizontal Whitespace: \h \H
1343 /*** GENERATED CODE ***/
1344 #define is_HORIZWS_high(s) \
1345 ( ( 0xBC == ((const U8*)s)[0] ) ? \
1346 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1347 : ( 0xCA == ((const U8*)s)[0] ) ? \
1348 ( ( 0x41 == ((const U8*)s)[1] ) ? \
1349 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xAA) ) ? 3 : 0 )\
1350 : ( 0x42 == ((const U8*)s)[1] ) ? \
1351 ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1352 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1353 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1355 /*** GENERATED CODE ***/
1356 #define is_HORIZWS_cp_high(cp) \
1357 ( 0x1680 == cp || ( 0x1680 < cp && \
1358 ( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
1359 ( 0x202F == cp || ( 0x202F < cp && \
1360 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
1363 VERTWS: Vertical Whitespace: \v \V
1367 /*** GENERATED CODE ***/
1368 #define is_VERTWS_high(s) \
1369 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )
1371 /*** GENERATED CODE ***/
1372 #define is_VERTWS_cp_high(cp) \
1373 ( inRANGE_helper_(UV, cp, 0x2028, 0x2029) )
1376 XDIGIT: Hexadecimal digits
1380 /*** GENERATED CODE ***/
1381 #define is_XDIGIT_high(s) \
1382 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x73 == ((const U8*)s)[1] ) ) ? ( ( 0x67 == ((const U8*)s)[2] ) ?\
1383 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xB9) ) ? 4 : 0 )\
1384 : ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x68, 0x69) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x42, 0x47) ) ) ? 4 : 0 ) : 0 )
1386 /*** GENERATED CODE ***/
1387 #define is_XDIGIT_cp_high(cp) \
1388 ( inRANGE_helper_(UV, cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp && \
1389 ( inRANGE_helper_(UV, cp, 0xFF21, 0xFF26) || inRANGE_helper_(UV, cp, 0xFF41, 0xFF46) ) ) )
1392 XPERLSPACE: \p{XPerlSpace}
1396 /*** GENERATED CODE ***/
1397 #define is_XPERLSPACE_high(s) \
1398 ( ( 0xBC == ((const U8*)s)[0] ) ? \
1399 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1400 : ( 0xCA == ((const U8*)s)[0] ) ? \
1401 ( ( 0x41 == ((const U8*)s)[1] ) ? \
1402 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xAA) ) ? 3 : 0 )\
1403 : ( 0x42 == ((const U8*)s)[1] ) ? \
1404 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1405 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1406 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1408 /*** GENERATED CODE ***/
1409 #define is_XPERLSPACE_cp_high(cp) \
1410 ( 0x1680 == cp || ( 0x1680 < cp && \
1411 ( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
1412 ( inRANGE_helper_(UV, cp, 0x2028, 0x2029) || ( 0x2029 < cp && \
1413 ( 0x202F == cp || ( 0x202F < cp && \
1414 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) )
1417 SPACE: Backwards \p{XPerlSpace}
1421 /*** GENERATED CODE ***/
1422 #define is_SPACE_utf8_safe_backwards(s,e) \
1423 ( ((s) - (e) > 2) ? \
1424 ( ( '\t' == *((const U8*)s - 1) || inRANGE_helper_(U8, *((const U8*)s - 1), '\v', '\r') || '\n' == *((const U8*)s - 1) || 0x25 == *((const U8*)s - 1) || ' ' == *((const U8*)s - 1) ) ? 1\
1425 : ( 0x41 == *((const U8*)s - 1) ) ? \
1426 ( ( 0x41 == *((const U8*)s - 2) ) ? \
1427 ( ( ( *((const U8*)s - 3) & 0xFB ) == 0xCA ) ? 3 : 0 ) \
1428 : ( 0x63 == *((const U8*)s - 2) ) ? \
1429 ( ( 0xBC == *((const U8*)s - 3) ) ? 3 : 0 ) \
1430 : ( 0x80 == *((const U8*)s - 2) ) ? 2 : 0 ) \
1431 : ( inRANGE_helper_(U8, *((const U8*)s - 1), 0x42, 0x48) || 0x51 == *((const U8*)s - 1) ) ?\
1432 ( ( ( 0x41 == *((const U8*)s - 2) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
1433 : ( inRANGE_helper_(U8, *((const U8*)s - 1), 0x49, 0x4A) ) ? \
1434 ( ( ( inRANGE_helper_(U8, *((const U8*)s - 2), 0x41, 0x42) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
1435 : ( 0x56 == *((const U8*)s - 1) ) ? \
1436 ( ( ( 0x42 == *((const U8*)s - 2) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
1437 : ( ( ( 0x73 == *((const U8*)s - 1) ) && ( 0x43 == *((const U8*)s - 2) ) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
1438 : ((s) - (e) > 1) ? \
1439 ( ( '\t' == *((const U8*)s - 1) || inRANGE_helper_(U8, *((const U8*)s - 1), '\v', '\r') || '\n' == *((const U8*)s - 1) || 0x25 == *((const U8*)s - 1) || ' ' == *((const U8*)s - 1) ) ? 1\
1440 : ( ( 0x41 == *((const U8*)s - 1) ) && ( 0x80 == *((const U8*)s - 2) ) ) ? 2 : 0 )\
1441 : ((s) - (e) > 0) ? \
1442 ( '\t' == *((const U8*)s - 1) || inRANGE_helper_(U8, *((const U8*)s - 1), '\v', '\r') || '\n' == *((const U8*)s - 1) || 0x25 == *((const U8*)s - 1) || ' ' == *((const U8*)s - 1) )\
1446 NONCHAR: Non character code points
1450 /*** GENERATED CODE ***/
1451 #define is_NONCHAR_utf8_safe(s,e) \
1452 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
1453 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1454 ( ( 0x55 == ((const U8*)s)[2] ) ? \
1455 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xBF) ) ? 4 : 0 )\
1456 : ( 0x56 == ((const U8*)s)[2] ) ? \
1457 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xAF) ) ? 4 : 0 )\
1458 : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ) ? 4 : 0 )\
1460 : ( ((const U8*)s)[0] == 0xDF || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xFD ) == 0xF5 ) ) ?\
1461 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ) ? 4 : 0 )\
1462 : ( 0xED == ((const U8*)s)[0] ) ? \
1463 ( ( ( ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF9 ) == 0xA9 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF1 ) == 0xB1 ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x72, 0x73) ) ) ? 5 : 0 )\
1464 : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x72, 0x73) ) ) ? 5 : 0 ) : 0 )
1467 SHORTER_NON_CHARS: # 4 bytes
1475 /*** GENERATED CODE ***/
1476 #define is_SHORTER_NON_CHARS_utf8(s) \
1477 ( ( 0xDD == ((const U8*)s)[0] ) ? \
1478 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1479 ( ( 0x55 == ((const U8*)s)[2] ) ? \
1480 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xBF) ) ? 4 : 0 )\
1481 : ( 0x56 == ((const U8*)s)[2] ) ? \
1482 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xAF) ) ? 4 : 0 )\
1483 : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ) ? 4 : 0 )\
1485 : ( ( ( ( ((const U8*)s)[0] == 0xDF || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xFD ) == 0xF5 ) ) && ( 0x73 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ) ? 4 : 0 )
1488 LARGER_NON_CHARS: # 5 bytes
1504 /*** GENERATED CODE ***/
1505 #define is_LARGER_NON_CHARS_utf8(s) \
1506 ( ( 0xED == ((const U8*)s)[0] ) ? \
1507 ( ( ( ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF9 ) == 0xA9 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF1 ) == 0xB1 ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x72, 0x73) ) ) ? 5 : 0 )\
1508 : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x72, 0x73) ) ) ? 5 : 0 )
1511 SURROGATE: Surrogate code points
1515 /*** GENERATED CODE ***/
1516 #define is_SURROGATE_utf8(s) \
1517 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x65, 0x66) ) ) ? 4 : 0 )
1519 /*** GENERATED CODE ***/
1520 #define is_SURROGATE_utf8_safe(s,e) \
1521 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x65, 0x66) ) ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xBF) ) ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xBF) ) ) ? 4 : 0 )
1524 QUOTEMETA: Meta-characters that \Q should quote
1528 /*** GENERATED CODE ***/
1529 #define is_QUOTEMETA_high(s) \
1530 ( ( 0xB1 == ((const U8*)s)[0] ) ? \
1531 ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1532 : ( 0xB8 == ((const U8*)s)[0] ) ? \
1533 ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1534 : ( 0xBB == ((const U8*)s)[0] ) ? \
1535 ( ( 0x51 == ((const U8*)s)[1] ) ? \
1536 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1537 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1538 : ( 0xBC == ((const U8*)s)[0] ) ? \
1539 ( ( 0x63 == ((const U8*)s)[1] ) ? \
1540 ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1541 : ( ( 0x71 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x63, 0x64) ) ) ? 3 : 0 )\
1542 : ( 0xBE == ((const U8*)s)[0] ) ? \
1543 ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x52, 0x56) ) ) ? 3 : 0 )\
1544 : ( 0xCA == ((const U8*)s)[0] ) ? \
1545 ( ( 0x41 == ((const U8*)s)[1] || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xAD, 0xBF) ) ?\
1547 : ( 0x42 == ((const U8*)s)[1] ) ? \
1548 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xBE) ) ? 3 : 0 )\
1549 : ( 0x43 == ((const U8*)s)[1] ) ? \
1550 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA1, 0xB3) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xB5, 0xBF) ) ? 3 : 0 )\
1551 : ( 0x44 == ((const U8*)s)[1] ) ? \
1552 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xAF) ) ? 3 : 0 )\
1553 : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xB0, 0xBF) ) ) ? 3 : 0 )\
1554 : ( 0xCB == ((const U8*)s)[0] ) ? \
1555 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xA0, 0xA2) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xA8, 0xBA) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xBD, 0xBF) ) ?\
1557 : ( 0x6A == ((const U8*)s)[1] ) ? \
1558 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xB5) ) ? 3 : 0 )\
1559 : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xB4, 0xBF) ) ) ? 3 : 0 )\
1560 : ( 0xCC == ((const U8*)s)[0] ) ? \
1562 : ( 0xCD == ((const U8*)s)[0] ) ? \
1563 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xB0, 0xB3) ) ?\
1566 : ( 0xCE == ((const U8*)s)[0] ) ? \
1567 ( ( 0x41 == ((const U8*)s)[1] ) ? \
1568 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xA3) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA8, 0xBF) ) ? 3 : 0 )\
1569 : ( 0x42 == ((const U8*)s)[1] ) ? \
1570 ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xEF ) == 0xA0 ) ? 3 : 0 )\
1571 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1572 : ( 0xDD == ((const U8*)s)[0] ) ? \
1573 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1574 ( ( 0x4A == ((const U8*)s)[2] ) ? \
1575 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ? 4 : 0 )\
1576 : ( 0x57 == ((const U8*)s)[2] ) ? \
1577 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xAF) ) ? 4 : 0 )\
1578 : ( 0x59 == ((const U8*)s)[2] ) ? \
1579 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x46, 0x47) ) ? 4 : 0 )\
1580 : ( 0x66 == ((const U8*)s)[2] ) ? \
1581 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1582 : ( 0x71 == ((const U8*)s)[2] ) ? \
1583 ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1584 : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xB8) ) ) ? 4 : 0 )\
1586 : ( 0xDF == ((const U8*)s)[0] ) ? \
1587 ( ( 0x56 == ((const U8*)s)[1] ) ? \
1588 ( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x44) ) ) ? 4 : 0 )\
1589 : ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x69) ) ) ? 4 : 0 )\
1590 : ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) ) ) ? 5 : 0 )
1593 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1595 %regcharclass_multi_char_folds::multi_char_folds('u', 'a')
1597 /*** GENERATED CODE ***/
1598 #define is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
1599 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1602 /*** GENERATED CODE ***/
1603 #define is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
1604 ( ( 0x8F == ((const U8*)s)[0] ) ? \
1605 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1606 ( ( 0x8F == ((const U8*)s)[2] ) ? \
1607 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1608 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
1610 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
1611 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1612 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
1613 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1614 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1615 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
1616 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
1617 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1618 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
1619 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1620 : ( 0xAB == ((const U8*)s)[0] ) ? \
1621 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
1622 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1623 ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
1624 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1625 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1626 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1627 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1628 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1630 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1631 : ( 0x68 == ((const U8*)s)[1] ) ? \
1632 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1633 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1634 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1635 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
1636 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1638 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1640 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1641 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1642 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1643 : ( 0x46 == ((const U8*)s)[1] ) ? \
1644 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1645 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1646 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1647 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
1648 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1649 : ( 0x62 == ((const U8*)s)[3] ) ? \
1650 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1651 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 4 )\
1652 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1654 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1655 : ( 0x4A == ((const U8*)s)[1] ) ? \
1656 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1657 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1658 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1660 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1661 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1662 : ( 0xB8 == ((const U8*)s)[0] ) ? \
1663 ( ( 0x52 == ((const U8*)s)[1] ) ? \
1664 ( ( 0x46 == ((const U8*)s)[2] ) ? \
1665 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1666 : ( 0x63 == ((const U8*)s)[2] ) ? \
1667 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[5]) & 0xF7 ) == 0xA5 ) || ((const U8*)s)[5] == 0x52 || ((const U8*)s)[5] == 0x65 ) ) ? 6 : 0 )\
1668 : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1670 : ( 0xBF == ((const U8*)s)[0] ) ? \
1671 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
1672 ( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1673 : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x70 ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1677 /*** GENERATED CODE ***/
1678 #define is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
1679 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
1680 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1681 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1682 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1683 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
1684 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
1685 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
1686 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1687 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
1688 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1689 : ( 0x8F == ((const U8*)s)[0] ) ? \
1690 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1691 ( ( 0x8F == ((const U8*)s)[2] ) ? \
1692 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1693 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
1695 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
1696 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1697 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
1698 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1699 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1700 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
1701 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
1702 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1703 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
1704 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1705 : ( 0xAB == ((const U8*)s)[0] ) ? \
1706 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
1707 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1708 ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
1709 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1710 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1711 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1712 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1713 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1714 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1715 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1716 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1717 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1718 : ( 0x46 == ((const U8*)s)[1] ) ? \
1719 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1720 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1721 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1722 : ( 0x4A == ((const U8*)s)[1] ) ? \
1723 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1724 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1725 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1726 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1727 : ( 0xBF == ((const U8*)s)[0] ) ? \
1728 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
1729 ( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1730 : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x70 ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1734 /*** GENERATED CODE ***/
1735 #define is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
1737 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
1738 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1739 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1740 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1741 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
1742 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
1743 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
1744 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1745 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
1746 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1747 : ( 0x8F == ((const U8*)s)[0] ) ? \
1748 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1749 ( ( 0x8F == ((const U8*)s)[2] ) ? \
1750 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1751 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
1753 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
1754 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1755 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
1756 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1757 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1758 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
1759 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
1760 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1761 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
1762 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1763 : ( 0xAB == ((const U8*)s)[0] ) ? \
1764 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
1765 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1766 ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
1767 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1768 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1769 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1770 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1771 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1772 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1773 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1774 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1775 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1776 : ( 0x46 == ((const U8*)s)[1] ) ? \
1777 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1778 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1779 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1780 : ( 0x4A == ((const U8*)s)[1] ) ? \
1781 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1782 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1783 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1784 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1787 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
1788 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1789 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1790 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1791 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
1792 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
1793 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
1794 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1795 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
1796 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1797 : ( 0x8F == ((const U8*)s)[0] ) ? \
1798 ( ( ( 0x73 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ) ? 3 : 0 )\
1799 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
1800 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1801 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
1802 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1803 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1804 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
1805 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
1806 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1807 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
1808 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1809 : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
1811 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1812 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
1813 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
1817 /*** GENERATED CODE ***/
1818 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
1820 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
1821 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1822 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1823 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1824 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
1825 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
1826 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
1827 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1828 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )\
1829 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )
1831 /*** GENERATED CODE ***/
1832 #define what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
1833 ( ( 0x52 == ((const U8*)s)[1] ) ? \
1834 ( ( 0x46 == ((const U8*)s)[2] ) ? \
1835 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x587 : 0 )\
1836 : ( 0x63 == ((const U8*)s)[2] ) ? \
1837 ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) ? ( ( 0x46 == ((const U8*)s)[5] ) ? 0xFB14\
1838 : ( 0x52 == ((const U8*)s)[5] ) ? 0xFB15 \
1839 : ( 0x54 == ((const U8*)s)[5] ) ? 0xFB17 \
1840 : ( 0x65 == ((const U8*)s)[5] ) ? 0xFB13 : 0 ) : 0 )\
1841 : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 0xFB16 : 0 )\
1845 /*** GENERATED CODE ***/
1846 #define what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
1847 ( ( 0xBF == ((const U8*)s)[0] ) ? \
1848 ( ( 0x67 == ((const U8*)s)[1] ) ? \
1849 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1850 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
1851 : ( 0x42 == ((const U8*)s)[2] ) ? \
1852 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
1853 : ( 0x43 == ((const U8*)s)[2] ) ? \
1854 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
1855 : ( 0x44 == ((const U8*)s)[2] ) ? \
1856 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
1857 : ( 0x45 == ((const U8*)s)[2] ) ? \
1858 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
1859 : ( 0x46 == ((const U8*)s)[2] ) ? \
1860 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
1861 : ( 0x47 == ((const U8*)s)[2] ) ? \
1862 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
1863 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
1864 : ( 0x68 == ((const U8*)s)[1] ) ? \
1865 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1866 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
1867 : ( 0x42 == ((const U8*)s)[2] ) ? \
1868 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
1869 : ( 0x43 == ((const U8*)s)[2] ) ? \
1870 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
1871 : ( 0x44 == ((const U8*)s)[2] ) ? \
1872 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
1873 : ( 0x45 == ((const U8*)s)[2] ) ? \
1874 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
1875 : ( 0x46 == ((const U8*)s)[2] ) ? \
1876 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
1877 : ( 0x47 == ((const U8*)s)[2] ) ? \
1878 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
1879 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
1880 : ( 0x6A == ((const U8*)s)[1] ) ? \
1881 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1882 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
1883 : ( 0x42 == ((const U8*)s)[2] ) ? \
1884 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
1885 : ( 0x43 == ((const U8*)s)[2] ) ? \
1886 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
1887 : ( 0x44 == ((const U8*)s)[2] ) ? \
1888 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
1889 : ( 0x45 == ((const U8*)s)[2] ) ? \
1890 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
1891 : ( 0x46 == ((const U8*)s)[2] ) ? \
1892 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
1893 : ( 0x47 == ((const U8*)s)[2] ) ? \
1894 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
1895 : ( 0x48 == ((const U8*)s)[2] ) ? \
1896 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
1897 : ( 0x57 == ((const U8*)s)[2] ) ? \
1898 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
1899 : ( 0x63 == ((const U8*)s)[2] ) ? \
1900 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
1901 : ( ( ( 0x70 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
1906 /*** GENERATED CODE ***/
1907 #define what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
1908 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1909 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
1910 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
1911 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
1912 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 )
1915 /*** GENERATED CODE ***/
1916 #define what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
1917 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
1918 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
1919 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
1920 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
1921 : ( 0x8F == ((const U8*)s)[0] ) ? \
1922 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1923 ( ( 0x8F == ((const U8*)s)[2] ) ? \
1924 ( ( 0x73 == ((const U8*)s)[3] ) ? 0x59 : 0 ) \
1925 : ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
1926 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
1928 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
1929 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
1930 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
1931 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1932 ( ( 0x73 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
1933 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
1934 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
1935 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
1936 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
1937 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
1938 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
1939 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
1940 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
1941 : ( 0xAB == ((const U8*)s)[0] ) ? \
1942 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
1943 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1944 ( ( 0x53 == ((const U8*)s)[1] ) ? \
1945 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
1946 : ( 0x55 == ((const U8*)s)[1] ) ? \
1947 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
1948 : ( 0x58 == ((const U8*)s)[1] ) ? \
1949 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1950 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1951 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 0x1FB7 : 0x1FB6 )\
1953 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
1954 : ( 0x66 == ((const U8*)s)[1] ) ? \
1955 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1956 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1957 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 0x1FC7 : 0x1FC6 )\
1959 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
1960 : ( 0x68 == ((const U8*)s)[1] ) ? \
1961 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1962 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1963 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1964 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1FD2 \
1965 : ( 0x42 == ((const U8*)s)[5] ) ? 0x390 : 0 ) \
1966 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1FD7 : 0 )\
1968 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
1970 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1971 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1972 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
1973 : ( 0x46 == ((const U8*)s)[1] ) ? \
1974 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1975 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1976 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1977 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1FE2 \
1978 : ( 0x42 == ((const U8*)s)[5] ) ? 0x3B0 : 0 ) \
1979 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1FE7 : 0 )\
1980 : ( 0x62 == ((const U8*)s)[3] ) ? \
1981 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1982 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1F52 \
1983 : ( 0x42 == ((const U8*)s)[5] ) ? 0x1F54 : 0x1F50 ) \
1984 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1F56 : 0x1F50 )\
1986 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
1987 : ( 0x4A == ((const U8*)s)[1] ) ? \
1988 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1989 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1990 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 0x1FF7 : 0x1FF6 )\
1992 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
1993 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )\
1994 : ( 0xB8 == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )
1997 /*** GENERATED CODE ***/
1998 #define what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) \
1999 ( ( 0x42 == ((const U8*)s)[1] ) ? \
2000 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
2001 : ( 0x46 == ((const U8*)s)[1] ) ? \
2002 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2003 ( ( 0x62 == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
2004 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
2005 : ( 0x4A == ((const U8*)s)[1] ) ? \
2006 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
2007 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
2008 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
2009 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )
2012 /*** GENERATED CODE ***/
2013 #define what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) \
2014 ( ( 0xBF == ((const U8*)s)[0] ) ? \
2015 ( ( 0x67 == ((const U8*)s)[1] ) ? \
2016 ( ( 0x41 == ((const U8*)s)[2] ) ? \
2017 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
2018 : ( 0x42 == ((const U8*)s)[2] ) ? \
2019 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
2020 : ( 0x43 == ((const U8*)s)[2] ) ? \
2021 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
2022 : ( 0x44 == ((const U8*)s)[2] ) ? \
2023 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
2024 : ( 0x45 == ((const U8*)s)[2] ) ? \
2025 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
2026 : ( 0x46 == ((const U8*)s)[2] ) ? \
2027 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
2028 : ( 0x47 == ((const U8*)s)[2] ) ? \
2029 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
2030 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
2031 : ( 0x68 == ((const U8*)s)[1] ) ? \
2032 ( ( 0x41 == ((const U8*)s)[2] ) ? \
2033 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
2034 : ( 0x42 == ((const U8*)s)[2] ) ? \
2035 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
2036 : ( 0x43 == ((const U8*)s)[2] ) ? \
2037 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
2038 : ( 0x44 == ((const U8*)s)[2] ) ? \
2039 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
2040 : ( 0x45 == ((const U8*)s)[2] ) ? \
2041 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
2042 : ( 0x46 == ((const U8*)s)[2] ) ? \
2043 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
2044 : ( 0x47 == ((const U8*)s)[2] ) ? \
2045 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
2046 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
2047 : ( 0x6A == ((const U8*)s)[1] ) ? \
2048 ( ( 0x41 == ((const U8*)s)[2] ) ? \
2049 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
2050 : ( 0x42 == ((const U8*)s)[2] ) ? \
2051 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
2052 : ( 0x43 == ((const U8*)s)[2] ) ? \
2053 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
2054 : ( 0x44 == ((const U8*)s)[2] ) ? \
2055 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
2056 : ( 0x45 == ((const U8*)s)[2] ) ? \
2057 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
2058 : ( 0x46 == ((const U8*)s)[2] ) ? \
2059 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
2060 : ( 0x47 == ((const U8*)s)[2] ) ? \
2061 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
2062 : ( 0x48 == ((const U8*)s)[2] ) ? \
2063 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
2064 : ( 0x57 == ((const U8*)s)[2] ) ? \
2065 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
2066 : ( 0x63 == ((const U8*)s)[2] ) ? \
2067 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
2068 : ( ( ( 0x70 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
2073 /*** GENERATED CODE ***/
2074 #define what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) \
2075 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
2076 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
2077 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2078 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2079 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
2080 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
2081 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2082 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2083 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
2084 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
2085 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
2086 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
2087 : ( 0x8F == ((const U8*)s)[0] ) ? \
2088 ( ( 0x73 == ((const U8*)s)[1] ) ? \
2089 ( ( 0x8F == ((const U8*)s)[2] ) ? \
2090 ( ( 0x73 == ((const U8*)s)[3] ) ? 0x59 : 0 ) \
2091 : ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
2092 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2094 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
2095 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
2096 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2097 ( ( 0x8F == ((const U8*)s)[1] ) ? \
2098 ( ( 0x73 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
2099 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2100 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2101 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
2102 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
2103 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
2104 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
2105 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
2106 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
2107 : ( 0xAB == ((const U8*)s)[0] ) ? \
2108 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
2109 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2110 ( ( 0x53 == ((const U8*)s)[1] ) ? \
2111 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
2112 : ( 0x55 == ((const U8*)s)[1] ) ? \
2113 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
2114 : ( 0x58 == ((const U8*)s)[1] ) ? \
2115 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
2116 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
2117 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
2118 : ( 0x66 == ((const U8*)s)[1] ) ? \
2119 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
2120 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
2121 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
2122 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
2123 : ( 0xB5 == ((const U8*)s)[0] ) ? \
2124 ( ( 0x42 == ((const U8*)s)[1] ) ? \
2125 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
2126 : ( 0x46 == ((const U8*)s)[1] ) ? \
2127 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2128 ( ( 0x62 == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
2129 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
2130 : ( 0x4A == ((const U8*)s)[1] ) ? \
2131 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
2132 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
2133 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
2134 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )\
2138 /*** GENERATED CODE ***/
2139 #define what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) \
2141 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
2142 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
2143 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2144 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2145 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
2146 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
2147 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2148 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2149 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
2150 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
2151 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
2152 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
2153 : ( 0x8F == ((const U8*)s)[0] ) ? \
2154 ( ( 0x73 == ((const U8*)s)[1] ) ? \
2155 ( ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
2156 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2158 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
2159 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
2160 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2161 ( ( 0x8F == ((const U8*)s)[1] ) ? \
2162 ( ( 0x73 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
2163 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2164 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2165 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
2166 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
2167 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
2168 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
2169 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
2170 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
2171 : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
2173 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2174 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 0xFB00 \
2175 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2176 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2177 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2178 ( ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2179 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2184 /*** GENERATED CODE ***/
2185 #define what_MULTI_CHAR_FOLD_utf8_safe(s,e) \
2187 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
2188 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
2189 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )\
2191 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
2192 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
2193 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2194 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2195 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
2196 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
2197 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2198 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2199 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
2200 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
2201 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
2202 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
2203 : ( 0x8F == ((const U8*)s)[0] ) ? \
2204 ( ( 0x73 == ((const U8*)s)[1] ) ? \
2205 ( ( 0x8F == ((const U8*)s)[2] ) ? \
2206 ( ( 0x73 == ((const U8*)s)[3] ) ? 0x59 : 0 ) \
2207 : ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
2208 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2210 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
2211 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
2212 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2213 ( ( 0x8F == ((const U8*)s)[1] ) ? \
2214 ( ( 0x73 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
2215 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2216 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2217 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
2218 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
2219 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
2220 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
2221 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
2222 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
2223 : ( 0xAB == ((const U8*)s)[0] ) ? \
2224 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
2225 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2226 ( ( 0x53 == ((const U8*)s)[1] ) ? \
2227 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
2228 : ( 0x55 == ((const U8*)s)[1] ) ? \
2229 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
2230 : ( 0x58 == ((const U8*)s)[1] ) ? \
2231 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
2232 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
2233 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
2234 : ( 0x66 == ((const U8*)s)[1] ) ? \
2235 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
2236 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
2237 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
2238 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
2239 : ( 0xB5 == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) )\
2240 : ((e)-(s) > 3) ? what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) )
2243 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
2245 %regcharclass_multi_char_folds::multi_char_folds('l', 'a')
2247 /*** GENERATED CODE ***/
2248 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
2250 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2251 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2252 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
2253 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
2254 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
2256 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2257 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
2258 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
2261 /*** GENERATED CODE ***/
2262 #define what_MULTI_CHAR_FOLD_latin1_safe(s,e) \
2264 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2265 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2266 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
2267 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
2268 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2269 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2270 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2271 ( ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2272 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2275 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2276 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 0xFB00 \
2277 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2278 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2279 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2280 ( ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2281 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2286 THREE_CHAR_FOLD: A three-character multi-char fold
2288 %regcharclass_multi_char_folds::multi_char_folds('u', '3')
2290 /*** GENERATED CODE ***/
2291 #define is_THREE_CHAR_FOLD_utf8_safe(s,e) \
2293 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2294 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ) ? 3 : 0 )\
2295 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2296 ( ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
2297 ( ( ( ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB4 == ((const U8*)s)[4] ) ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2298 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x49 == ((const U8*)s)[3] ) ) ? ( ( 0xAF == ((const U8*)s)[4] ) ?\
2299 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
2300 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
2301 : ( 0xB5 == ((const U8*)s)[0] ) ? \
2302 ( ( 0x46 == ((const U8*)s)[1] ) ? \
2303 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] || 0x62 == ((const U8*)s)[3] ) ) ? ( ( 0xAF == ((const U8*)s)[4] ) ?\
2304 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
2305 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
2306 : ( ( ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB4 == ((const U8*)s)[4] ) ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2308 : ( ( ( ((e)-(s) > 2) && ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ) && ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ) ? 3 : 0 )
2311 THREE_CHAR_FOLD: A three-character multi-char fold
2313 %regcharclass_multi_char_folds::multi_char_folds('l', '3')
2315 /*** GENERATED CODE ***/
2316 #define is_THREE_CHAR_FOLD_latin1_safe(s,e) \
2317 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ) && ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ) ? 3 : 0 )
2320 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
2322 %regcharclass_multi_char_folds::multi_char_folds('u', 'h')
2324 /*** GENERATED CODE ***/
2325 #define is_THREE_CHAR_FOLD_HEAD_utf8_safe(s,e) \
2327 ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
2328 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2329 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
2330 : ( 0x8F == ((const U8*)s)[0] ) ? \
2331 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2332 : ( 0xAB == ((const U8*)s)[0] ) ? \
2333 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2334 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2335 ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? 2 \
2336 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
2337 ( ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
2338 : ( 0x68 == ((const U8*)s)[1] ) ? \
2339 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
2341 : ( 0xB5 == ((const U8*)s)[0] ) ? \
2342 ( ( 0x42 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? 2 \
2343 : ( 0x46 == ((const U8*)s)[1] ) ? \
2344 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] || 0x62 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
2345 : ( 0x4A == ((const U8*)s)[1] ) ? \
2346 ( ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
2348 : ( 0xB8 == ((const U8*)s)[0] ) ? \
2349 ( ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x46 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2350 : ( 0xBF == ((const U8*)s)[0] ) ? \
2351 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
2352 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) ? 3 : 0 )\
2353 : ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x70 ) ) ? 3 : 0 )\
2356 ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
2357 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2358 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
2359 : ( 0x8F == ((const U8*)s)[0] ) ? \
2360 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2361 : ( 0xAB == ((const U8*)s)[0] ) ? \
2362 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2363 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2364 ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0x66 ) ? 2 : 0 )\
2365 : ( 0xB5 == ((const U8*)s)[0] ) ? \
2366 ( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ? 2 : 0 )\
2367 : ( 0xB8 == ((const U8*)s)[0] ) ? \
2368 ( ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x46 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2369 : ( 0xBF == ((const U8*)s)[0] ) ? \
2370 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
2371 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) ? 3 : 0 )\
2372 : ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x70 ) ) ? 3 : 0 )\
2375 ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
2376 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2377 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
2378 : ( 0x8F == ((const U8*)s)[0] ) ? \
2379 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2380 : ( 0xAB == ((const U8*)s)[0] ) ? \
2381 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2382 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2383 ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0x66 ) ? 2 : 0 )\
2384 : ( ( 0xB5 == ((const U8*)s)[0] ) && ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ) ? 2 : 0 )\
2386 ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0x9F ) == 'f' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) )\
2390 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
2392 %regcharclass_multi_char_folds::multi_char_folds('l', 'h')
2394 /*** GENERATED CODE ***/
2395 #define is_THREE_CHAR_FOLD_HEAD_latin1_safe(s,e) \
2397 ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
2398 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2399 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
2402 ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0x9F ) == 'f' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) )\
2406 FOLDS_TO_MULTI: characters that fold to multi-char strings
2408 \p{_Perl_Folds_To_Multi_Char}
2410 /*** GENERATED CODE ***/
2411 #define is_FOLDS_TO_MULTI_utf8(s) \
2412 ( ( 0x8A == ((const U8*)s)[0] ) ? \
2413 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2414 : ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 0xB3, 0xB4) ) ?\
2415 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2416 : ( 0x8E == ((const U8*)s)[0] ) ? \
2417 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2418 : ( 0xB8 == ((const U8*)s)[0] ) ? \
2419 ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2420 : ( 0xBF == ((const U8*)s)[0] ) ? \
2421 ( ( 0x63 == ((const U8*)s)[1] ) ? \
2422 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x69) || 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )\
2423 : ( 0x69 == ((const U8*)s)[1] ) ? \
2424 ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF9 ) == 0xB0 ) ? 3 : 0 )\
2425 : ( 0x70 == ((const U8*)s)[1] ) ? \
2427 : ( 0x71 == ((const U8*)s)[1] ) ? \
2428 ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF0 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFA ) == 0xB2 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF7 ) == 0xB4 ) ) ? 3 : 0 )\
2429 : ( 0x72 == ((const U8*)s)[1] ) ? \
2430 ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xEA ) == 0xA2 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF7 ) == 0xA4 ) ) ? 3 : 0 )\
2431 : ( ( 0x73 == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xEA ) == 0xA2 ) || ((const U8*)s)[2] == 0x45 || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
2432 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x47) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x66) ) ) ? 4 : 0 )
2435 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
2437 \p{_Perl_Problematic_Locale_Folds}
2439 /*** GENERATED CODE ***/
2440 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
2441 ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0x80 ) == 0x00 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xE0 ) == 0x80 ) ) ? 1\
2442 : ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[0]), 0xC5, 0xC7) ) ?\
2444 : ( 0x8D == ((const U8*)s)[0] ) ? \
2445 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x58) ) ? 2 : 0 ) \
2446 : ( 0x8E == ((const U8*)s)[0] ) ? \
2447 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2448 : ( 0x8F == ((const U8*)s)[0] ) ? \
2449 ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2450 : ( 0x9C == ((const U8*)s)[0] ) ? \
2451 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2452 : ( 0xAF == ((const U8*)s)[0] ) ? \
2453 ( ( 0x48 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2454 : ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xB3, 0xB4) ) ? \
2455 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2456 : ( 0xBF == ((const U8*)s)[0] ) ? \
2457 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x69) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2458 : ( 0xCA == ((const U8*)s)[0] ) ? \
2459 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x52) ) ) ? 3 : 0 )\
2460 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x47) ) ) ? 4 : 0 )
2462 /*** GENERATED CODE ***/
2463 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
2464 ( cp <= 0xFF || ( 0xFF < cp && \
2465 ( inRANGE_helper_(UV, cp, 0x130, 0x131) || ( 0x131 < cp && \
2466 ( 0x149 == cp || ( 0x149 < cp && \
2467 ( 0x178 == cp || ( 0x178 < cp && \
2468 ( 0x17F == cp || ( 0x17F < cp && \
2469 ( 0x1F0 == cp || ( 0x1F0 < cp && \
2470 ( 0x307 == cp || ( 0x307 < cp && \
2471 ( 0x39C == cp || ( 0x39C < cp && \
2472 ( 0x3BC == cp || ( 0x3BC < cp && \
2473 ( inRANGE_helper_(UV, cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
2474 ( 0x1E9E == cp || ( 0x1E9E < cp && \
2475 ( inRANGE_helper_(UV, cp, 0x212A, 0x212B) || inRANGE_helper_(UV, cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
2478 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
2480 \p{_Perl_Problematic_Locale_Foldeds_Start}
2482 /*** GENERATED CODE ***/
2483 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
2484 ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0x80 ) == 0x00 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xE0 ) == 0x80 ) ) ? 1\
2485 : ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[0]), 0xC5, 0xC7) ) ?\
2487 : ( 0x8D == ((const U8*)s)[0] ) ? \
2488 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x58) ) ? 2 : 0 ) \
2489 : ( 0x8E == ((const U8*)s)[0] ) ? \
2490 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2491 : ( 0x8F == ((const U8*)s)[0] ) ? \
2492 ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2493 : ( 0x9C == ((const U8*)s)[0] ) ? \
2494 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2495 : ( 0xAB == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 0xB3, 0xB4) ) ?\
2496 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2497 : ( 0xBF == ((const U8*)s)[0] ) ? \
2498 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x69) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2499 : ( 0xCA == ((const U8*)s)[0] ) ? \
2500 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x52) ) ) ? 3 : 0 )\
2501 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x47) ) ) ? 4 : 0 )
2503 /*** GENERATED CODE ***/
2504 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
2505 ( cp <= 0xFF || ( 0xFF < cp && \
2506 ( inRANGE_helper_(UV, cp, 0x130, 0x131) || ( 0x131 < cp && \
2507 ( 0x149 == cp || ( 0x149 < cp && \
2508 ( 0x178 == cp || ( 0x178 < cp && \
2509 ( 0x17F == cp || ( 0x17F < cp && \
2510 ( 0x1F0 == cp || ( 0x1F0 < cp && \
2511 ( 0x2BC == cp || ( 0x2BC < cp && \
2512 ( 0x39C == cp || ( 0x39C < cp && \
2513 ( 0x3BC == cp || ( 0x3BC < cp && \
2514 ( inRANGE_helper_(UV, cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
2515 ( 0x1E9E == cp || ( 0x1E9E < cp && \
2516 ( inRANGE_helper_(UV, cp, 0x212A, 0x212B) || inRANGE_helper_(UV, cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
2519 PATWS: pattern white space
2523 /*** GENERATED CODE ***/
2524 #define is_PATWS_safe(s,e,is_utf8) \
2525 ( ( LIKELY((e) > (s)) ) ? \
2526 ( ( '\t' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] || ' ' == ((const U8*)s)[0] ) ? 1\
2527 : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
2528 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x55, 0x56) ) ? 3 : 0 )\
2529 : ( ( 0x42 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 ) : 0 )\
2533 HANGUL_ED: Hangul syllables whose first UTF-8 byte is \xED
2537 /*** GENERATED CODE ***/
2538 #define is_HANGUL_ED_utf8_safe(s,e) \
2541 #endif /* EBCDIC 1047 */
2543 #if 'A' == 193 /* EBCDIC 037 */ \
2544 && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
2545 && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
2546 && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
2548 LNBREAK: Line Break: \R
2550 "\x0D\x0A" # CRLF - Network (Windows) line ending
2553 /*** GENERATED CODE ***/
2554 #define is_LNBREAK_safe(s,e,is_utf8) \
2556 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
2557 : ( '\r' == ((const U8*)s)[0] ) ? \
2558 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
2559 : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )\
2561 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
2562 : ( '\r' == ((const U8*)s)[0] ) ? \
2563 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
2566 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] )\
2569 /*** GENERATED CODE ***/
2570 #define is_LNBREAK_utf8_safe(s,e) \
2572 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
2573 : ( '\r' == ((const U8*)s)[0] ) ? \
2574 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
2575 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )\
2577 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
2578 : ( '\r' == ((const U8*)s)[0] ) ? \
2579 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
2582 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] )\
2585 /*** GENERATED CODE ***/
2586 #define is_LNBREAK_latin1_safe(s,e) \
2588 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
2589 : ( '\r' == ((const U8*)s)[0] ) ? \
2590 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
2593 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] )\
2597 HORIZWS: Horizontal Whitespace: \h \H
2601 /*** GENERATED CODE ***/
2602 #define is_HORIZWS_high(s) \
2603 ( ( 0xBD == ((const U8*)s)[0] ) ? \
2604 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2605 : ( 0xCA == ((const U8*)s)[0] ) ? \
2606 ( ( 0x41 == ((const U8*)s)[1] ) ? \
2607 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xAA) ) ? 3 : 0 )\
2608 : ( 0x42 == ((const U8*)s)[1] ) ? \
2609 ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2610 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2611 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
2613 /*** GENERATED CODE ***/
2614 #define is_HORIZWS_cp_high(cp) \
2615 ( 0x1680 == cp || ( 0x1680 < cp && \
2616 ( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
2617 ( 0x202F == cp || ( 0x202F < cp && \
2618 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
2621 VERTWS: Vertical Whitespace: \v \V
2625 /*** GENERATED CODE ***/
2626 #define is_VERTWS_high(s) \
2627 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )
2629 /*** GENERATED CODE ***/
2630 #define is_VERTWS_cp_high(cp) \
2631 ( inRANGE_helper_(UV, cp, 0x2028, 0x2029) )
2634 XDIGIT: Hexadecimal digits
2638 /*** GENERATED CODE ***/
2639 #define is_XDIGIT_high(s) \
2640 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\
2641 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xB9) ) ? 4 : 0 )\
2642 : ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x67, 0x68) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x42, 0x47) ) ) ? 4 : 0 ) : 0 )
2644 /*** GENERATED CODE ***/
2645 #define is_XDIGIT_cp_high(cp) \
2646 ( inRANGE_helper_(UV, cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp && \
2647 ( inRANGE_helper_(UV, cp, 0xFF21, 0xFF26) || inRANGE_helper_(UV, cp, 0xFF41, 0xFF46) ) ) )
2650 XPERLSPACE: \p{XPerlSpace}
2654 /*** GENERATED CODE ***/
2655 #define is_XPERLSPACE_high(s) \
2656 ( ( 0xBD == ((const U8*)s)[0] ) ? \
2657 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2658 : ( 0xCA == ((const U8*)s)[0] ) ? \
2659 ( ( 0x41 == ((const U8*)s)[1] ) ? \
2660 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xAA) ) ? 3 : 0 )\
2661 : ( 0x42 == ((const U8*)s)[1] ) ? \
2662 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
2663 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2664 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
2666 /*** GENERATED CODE ***/
2667 #define is_XPERLSPACE_cp_high(cp) \
2668 ( 0x1680 == cp || ( 0x1680 < cp && \
2669 ( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
2670 ( inRANGE_helper_(UV, cp, 0x2028, 0x2029) || ( 0x2029 < cp && \
2671 ( 0x202F == cp || ( 0x202F < cp && \
2672 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) )
2675 SPACE: Backwards \p{XPerlSpace}
2679 /*** GENERATED CODE ***/
2680 #define is_SPACE_utf8_safe_backwards(s,e) \
2681 ( ((s) - (e) > 2) ? \
2682 ( ( '\t' == *((const U8*)s - 1) || inRANGE_helper_(U8, *((const U8*)s - 1), '\v', '\r') || 0x15 == *((const U8*)s - 1) || '\n' == *((const U8*)s - 1) || ' ' == *((const U8*)s - 1) ) ? 1\
2683 : ( 0x41 == *((const U8*)s - 1) ) ? \
2684 ( ( 0x41 == *((const U8*)s - 2) ) ? \
2685 ( ( ( *((const U8*)s - 3) & 0xFB ) == 0xCA ) ? 3 : 0 ) \
2686 : ( 0x62 == *((const U8*)s - 2) ) ? \
2687 ( ( 0xBD == *((const U8*)s - 3) ) ? 3 : 0 ) \
2688 : ( 0x78 == *((const U8*)s - 2) ) ? 2 : 0 ) \
2689 : ( inRANGE_helper_(U8, *((const U8*)s - 1), 0x42, 0x48) || 0x51 == *((const U8*)s - 1) ) ?\
2690 ( ( ( 0x41 == *((const U8*)s - 2) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
2691 : ( inRANGE_helper_(U8, *((const U8*)s - 1), 0x49, 0x4A) ) ? \
2692 ( ( ( inRANGE_helper_(U8, *((const U8*)s - 2), 0x41, 0x42) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
2693 : ( 0x56 == *((const U8*)s - 1) ) ? \
2694 ( ( ( 0x42 == *((const U8*)s - 2) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
2695 : ( ( ( 0x72 == *((const U8*)s - 1) ) && ( 0x43 == *((const U8*)s - 2) ) ) && ( 0xCA == *((const U8*)s - 3) ) ) ? 3 : 0 )\
2696 : ((s) - (e) > 1) ? \
2697 ( ( '\t' == *((const U8*)s - 1) || inRANGE_helper_(U8, *((const U8*)s - 1), '\v', '\r') || 0x15 == *((const U8*)s - 1) || '\n' == *((const U8*)s - 1) || ' ' == *((const U8*)s - 1) ) ? 1\
2698 : ( ( 0x41 == *((const U8*)s - 1) ) && ( 0x78 == *((const U8*)s - 2) ) ) ? 2 : 0 )\
2699 : ((s) - (e) > 0) ? \
2700 ( '\t' == *((const U8*)s - 1) || inRANGE_helper_(U8, *((const U8*)s - 1), '\v', '\r') || 0x15 == *((const U8*)s - 1) || '\n' == *((const U8*)s - 1) || ' ' == *((const U8*)s - 1) )\
2704 NONCHAR: Non character code points
2708 /*** GENERATED CODE ***/
2709 #define is_NONCHAR_utf8_safe(s,e) \
2710 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
2711 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2712 ( ( 0x55 == ((const U8*)s)[2] ) ? \
2713 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xBF) ) ? 4 : 0 )\
2714 : ( 0x56 == ((const U8*)s)[2] ) ? \
2715 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xAF) ) ? 4 : 0 )\
2716 : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ) ? 4 : 0 )\
2718 : ( ((const U8*)s)[0] == 0xDF || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xFD ) == 0xF5 ) ) ?\
2719 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ) ? 4 : 0 )\
2720 : ( 0xED == ((const U8*)s)[0] ) ? \
2721 ( ( ( ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF9 ) == 0xA9 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF1 ) == 0xB1 ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x71, 0x72) ) ) ? 5 : 0 )\
2722 : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x71, 0x72) ) ) ? 5 : 0 ) : 0 )
2725 SHORTER_NON_CHARS: # 4 bytes
2733 /*** GENERATED CODE ***/
2734 #define is_SHORTER_NON_CHARS_utf8(s) \
2735 ( ( 0xDD == ((const U8*)s)[0] ) ? \
2736 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2737 ( ( 0x55 == ((const U8*)s)[2] ) ? \
2738 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xBF) ) ? 4 : 0 )\
2739 : ( 0x56 == ((const U8*)s)[2] ) ? \
2740 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xAF) ) ? 4 : 0 )\
2741 : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ) ? 4 : 0 )\
2743 : ( ( ( ( ((const U8*)s)[0] == 0xDF || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xFD ) == 0xF5 ) ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ) ? 4 : 0 )
2746 LARGER_NON_CHARS: # 5 bytes
2762 /*** GENERATED CODE ***/
2763 #define is_LARGER_NON_CHARS_utf8(s) \
2764 ( ( 0xED == ((const U8*)s)[0] ) ? \
2765 ( ( ( ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF9 ) == 0xA9 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF1 ) == 0xB1 ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x71, 0x72) ) ) ? 5 : 0 )\
2766 : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x71, 0x72) ) ) ? 5 : 0 )
2769 SURROGATE: Surrogate code points
2773 /*** GENERATED CODE ***/
2774 #define is_SURROGATE_utf8(s) \
2775 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x64, 0x65) ) ) ? 4 : 0 )
2777 /*** GENERATED CODE ***/
2778 #define is_SURROGATE_utf8_safe(s,e) \
2779 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x64, 0x65) ) ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xBF) ) ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xBF) ) ) ? 4 : 0 )
2782 QUOTEMETA: Meta-characters that \Q should quote
2786 /*** GENERATED CODE ***/
2787 #define is_QUOTEMETA_high(s) \
2788 ( ( 0xAF == ((const U8*)s)[0] ) ? \
2789 ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2790 : ( 0xB7 == ((const U8*)s)[0] ) ? \
2791 ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2792 : ( 0xBC == ((const U8*)s)[0] ) ? \
2793 ( ( 0x51 == ((const U8*)s)[1] ) ? \
2794 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2795 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2796 : ( 0xBD == ((const U8*)s)[0] ) ? \
2797 ( ( 0x62 == ((const U8*)s)[1] ) ? \
2798 ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2799 : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x63) ) ) ? 3 : 0 )\
2800 : ( 0xBE == ((const U8*)s)[0] ) ? \
2801 ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x52, 0x56) ) ) ? 3 : 0 )\
2802 : ( 0xCA == ((const U8*)s)[0] ) ? \
2803 ( ( 0x41 == ((const U8*)s)[1] || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xAD, 0xBF) ) ?\
2805 : ( 0x42 == ((const U8*)s)[1] ) ? \
2806 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xBE) ) ? 3 : 0 )\
2807 : ( 0x43 == ((const U8*)s)[1] ) ? \
2808 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA1, 0xB3) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xB5, 0xBF) ) ? 3 : 0 )\
2809 : ( 0x44 == ((const U8*)s)[1] ) ? \
2810 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xAF) ) ? 3 : 0 )\
2811 : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xB0, 0xBF) ) ) ? 3 : 0 )\
2812 : ( 0xCB == ((const U8*)s)[0] ) ? \
2813 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xA0, 0xA2) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xA8, 0xBA) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xBD, 0xBF) ) ?\
2815 : ( 0x69 == ((const U8*)s)[1] ) ? \
2816 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xB5) ) ? 3 : 0 )\
2817 : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xB4, 0xBF) ) ) ? 3 : 0 )\
2818 : ( 0xCC == ((const U8*)s)[0] ) ? \
2820 : ( 0xCD == ((const U8*)s)[0] ) ? \
2821 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[1]), 0xB0, 0xB3) ) ?\
2824 : ( 0xCE == ((const U8*)s)[0] ) ? \
2825 ( ( 0x41 == ((const U8*)s)[1] ) ? \
2826 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA0, 0xA3) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[2]), 0xA8, 0xBF) ) ? 3 : 0 )\
2827 : ( 0x42 == ((const U8*)s)[1] ) ? \
2828 ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xEF ) == 0xA0 ) ? 3 : 0 )\
2829 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2830 : ( 0xDD == ((const U8*)s)[0] ) ? \
2831 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2832 ( ( 0x4A == ((const U8*)s)[2] ) ? \
2833 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ? 4 : 0 )\
2834 : ( 0x57 == ((const U8*)s)[2] ) ? \
2835 ( ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xAF) ) ? 4 : 0 )\
2836 : ( 0x59 == ((const U8*)s)[2] ) ? \
2837 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x46, 0x47) ) ? 4 : 0 )\
2838 : ( 0x65 == ((const U8*)s)[2] ) ? \
2839 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2840 : ( 0x70 == ((const U8*)s)[2] ) ? \
2841 ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2842 : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB0, 0xB8) ) ) ? 4 : 0 )\
2844 : ( 0xDF == ((const U8*)s)[0] ) ? \
2845 ( ( 0x56 == ((const U8*)s)[1] ) ? \
2846 ( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x44) ) ) ? 4 : 0 )\
2847 : ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB3, 0xBA) ) ) ? 4 : 0 )\
2848 : ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) ) ) ? 5 : 0 )
2851 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
2853 %regcharclass_multi_char_folds::multi_char_folds('u', 'a')
2855 /*** GENERATED CODE ***/
2856 #define is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
2857 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )
2860 /*** GENERATED CODE ***/
2861 #define is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
2862 ( ( 0x8E == ((const U8*)s)[0] ) ? \
2863 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2864 ( ( 0x8E == ((const U8*)s)[2] ) ? \
2865 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2866 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
2868 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
2869 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2870 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2871 ( ( 0x8E == ((const U8*)s)[1] ) ? \
2872 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2873 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
2874 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
2875 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2876 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
2877 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2878 : ( 0xAA == ((const U8*)s)[0] ) ? \
2879 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
2880 : ( 0xB3 == ((const U8*)s)[0] ) ? \
2881 ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
2882 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2883 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
2884 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2885 ( ( 0x43 == ((const U8*)s)[3] ) ? \
2886 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
2888 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2889 : ( 0x67 == ((const U8*)s)[1] ) ? \
2890 ( ( 0xAD == ((const U8*)s)[2] ) ? \
2891 ( ( 0x49 == ((const U8*)s)[3] ) ? \
2892 ( ( 0xAD == ((const U8*)s)[4] ) ? \
2893 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
2894 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2896 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2898 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2899 ( ( 0x42 == ((const U8*)s)[1] ) ? \
2900 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2901 : ( 0x46 == ((const U8*)s)[1] ) ? \
2902 ( ( 0xAD == ((const U8*)s)[2] ) ? \
2903 ( ( 0x49 == ((const U8*)s)[3] ) ? \
2904 ( ( 0xAD == ((const U8*)s)[4] ) ? \
2905 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
2906 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2907 : ( 0x5F == ((const U8*)s)[3] ) ? \
2908 ( ( 0xAD == ((const U8*)s)[4] ) ? \
2909 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 4 )\
2910 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
2912 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2913 : ( 0x4A == ((const U8*)s)[1] ) ? \
2914 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2915 ( ( 0x43 == ((const U8*)s)[3] ) ? \
2916 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
2918 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2919 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2920 : ( 0xB7 == ((const U8*)s)[0] ) ? \
2921 ( ( 0x52 == ((const U8*)s)[1] ) ? \
2922 ( ( 0x46 == ((const U8*)s)[2] ) ? \
2923 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2924 : ( 0x62 == ((const U8*)s)[2] ) ? \
2925 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[5]) & 0xF7 ) == 0xA5 ) || ((const U8*)s)[5] == 0x52 || ((const U8*)s)[5] == 0x64 ) ) ? 6 : 0 )\
2926 : ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2928 : ( 0xBF == ((const U8*)s)[0] ) ? \
2929 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x66, 0x67) ) ? \
2930 ( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
2931 : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x6A ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
2935 /*** GENERATED CODE ***/
2936 #define is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
2937 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
2938 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2939 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2940 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2941 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
2942 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
2943 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
2944 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2945 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
2946 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2947 : ( 0x8E == ((const U8*)s)[0] ) ? \
2948 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2949 ( ( 0x8E == ((const U8*)s)[2] ) ? \
2950 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2951 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
2953 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
2954 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2955 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2956 ( ( 0x8E == ((const U8*)s)[1] ) ? \
2957 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2958 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
2959 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
2960 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2961 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
2962 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2963 : ( 0xAA == ((const U8*)s)[0] ) ? \
2964 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
2965 : ( 0xB3 == ((const U8*)s)[0] ) ? \
2966 ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
2967 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2968 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
2969 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2970 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2971 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2972 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2973 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2974 ( ( 0x42 == ((const U8*)s)[1] ) ? \
2975 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2976 : ( 0x46 == ((const U8*)s)[1] ) ? \
2977 ( ( 0xAD == ((const U8*)s)[2] ) ? \
2978 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 ) \
2979 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2980 : ( 0x4A == ((const U8*)s)[1] ) ? \
2981 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2982 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2983 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2984 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2985 : ( 0xBF == ((const U8*)s)[0] ) ? \
2986 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x66, 0x67) ) ? \
2987 ( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
2988 : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x6A ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
2992 /*** GENERATED CODE ***/
2993 #define is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
2995 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
2996 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2997 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2998 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2999 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
3000 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
3001 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
3002 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3003 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
3004 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3005 : ( 0x8E == ((const U8*)s)[0] ) ? \
3006 ( ( 0x72 == ((const U8*)s)[1] ) ? \
3007 ( ( 0x8E == ((const U8*)s)[2] ) ? \
3008 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
3009 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
3011 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
3012 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3013 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
3014 ( ( 0x8E == ((const U8*)s)[1] ) ? \
3015 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
3016 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
3017 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
3018 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3019 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
3020 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3021 : ( 0xAA == ((const U8*)s)[0] ) ? \
3022 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
3023 : ( 0xB3 == ((const U8*)s)[0] ) ? \
3024 ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? \
3025 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
3026 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
3027 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3028 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
3029 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
3030 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
3031 : ( 0xB4 == ((const U8*)s)[0] ) ? \
3032 ( ( 0x42 == ((const U8*)s)[1] ) ? \
3033 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
3034 : ( 0x46 == ((const U8*)s)[1] ) ? \
3035 ( ( 0xAD == ((const U8*)s)[2] ) ? \
3036 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 ) \
3037 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
3038 : ( 0x4A == ((const U8*)s)[1] ) ? \
3039 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3040 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
3041 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
3042 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
3045 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
3046 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3047 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3048 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
3049 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
3050 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
3051 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
3052 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3053 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
3054 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3055 : ( 0x8E == ((const U8*)s)[0] ) ? \
3056 ( ( ( 0x72 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ) ? 3 : 0 )\
3057 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
3058 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3059 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
3060 ( ( 0x8E == ((const U8*)s)[1] ) ? \
3061 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
3062 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
3063 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
3064 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3065 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
3066 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3067 : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
3069 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3070 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
3071 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
3075 /*** GENERATED CODE ***/
3076 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
3078 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
3079 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3080 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3081 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
3082 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
3083 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
3084 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
3085 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3086 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )\
3087 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )
3089 /*** GENERATED CODE ***/
3090 #define what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
3091 ( ( 0x52 == ((const U8*)s)[1] ) ? \
3092 ( ( 0x46 == ((const U8*)s)[2] ) ? \
3093 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x587 : 0 )\
3094 : ( 0x62 == ((const U8*)s)[2] ) ? \
3095 ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) ? ( ( 0x46 == ((const U8*)s)[5] ) ? 0xFB14\
3096 : ( 0x52 == ((const U8*)s)[5] ) ? 0xFB15 \
3097 : ( 0x54 == ((const U8*)s)[5] ) ? 0xFB17 \
3098 : ( 0x64 == ((const U8*)s)[5] ) ? 0xFB13 : 0 ) : 0 )\
3099 : ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 0xFB16 : 0 )\
3103 /*** GENERATED CODE ***/
3104 #define what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
3105 ( ( 0xBF == ((const U8*)s)[0] ) ? \
3106 ( ( 0x66 == ((const U8*)s)[1] ) ? \
3107 ( ( 0x41 == ((const U8*)s)[2] ) ? \
3108 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
3109 : ( 0x42 == ((const U8*)s)[2] ) ? \
3110 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
3111 : ( 0x43 == ((const U8*)s)[2] ) ? \
3112 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
3113 : ( 0x44 == ((const U8*)s)[2] ) ? \
3114 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
3115 : ( 0x45 == ((const U8*)s)[2] ) ? \
3116 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
3117 : ( 0x46 == ((const U8*)s)[2] ) ? \
3118 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
3119 : ( 0x47 == ((const U8*)s)[2] ) ? \
3120 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
3121 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
3122 : ( 0x67 == ((const U8*)s)[1] ) ? \
3123 ( ( 0x41 == ((const U8*)s)[2] ) ? \
3124 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
3125 : ( 0x42 == ((const U8*)s)[2] ) ? \
3126 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
3127 : ( 0x43 == ((const U8*)s)[2] ) ? \
3128 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
3129 : ( 0x44 == ((const U8*)s)[2] ) ? \
3130 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
3131 : ( 0x45 == ((const U8*)s)[2] ) ? \
3132 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
3133 : ( 0x46 == ((const U8*)s)[2] ) ? \
3134 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
3135 : ( 0x47 == ((const U8*)s)[2] ) ? \
3136 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
3137 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
3138 : ( 0x69 == ((const U8*)s)[1] ) ? \
3139 ( ( 0x41 == ((const U8*)s)[2] ) ? \
3140 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
3141 : ( 0x42 == ((const U8*)s)[2] ) ? \
3142 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
3143 : ( 0x43 == ((const U8*)s)[2] ) ? \
3144 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
3145 : ( 0x44 == ((const U8*)s)[2] ) ? \
3146 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
3147 : ( 0x45 == ((const U8*)s)[2] ) ? \
3148 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
3149 : ( 0x46 == ((const U8*)s)[2] ) ? \
3150 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
3151 : ( 0x47 == ((const U8*)s)[2] ) ? \
3152 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
3153 : ( 0x48 == ((const U8*)s)[2] ) ? \
3154 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
3155 : ( 0x57 == ((const U8*)s)[2] ) ? \
3156 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
3157 : ( 0x62 == ((const U8*)s)[2] ) ? \
3158 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
3159 : ( ( ( 0x6A == ((const U8*)s)[2] ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
3164 /*** GENERATED CODE ***/
3165 #define what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
3166 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
3167 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
3168 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
3169 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
3170 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 )
3173 /*** GENERATED CODE ***/
3174 #define what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
3175 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
3176 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
3177 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
3178 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
3179 : ( 0x8E == ((const U8*)s)[0] ) ? \
3180 ( ( 0x72 == ((const U8*)s)[1] ) ? \
3181 ( ( 0x8E == ((const U8*)s)[2] ) ? \
3182 ( ( 0x72 == ((const U8*)s)[3] ) ? 0x59 : 0 ) \
3183 : ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
3184 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3186 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
3187 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
3188 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
3189 ( ( 0x8E == ((const U8*)s)[1] ) ? \
3190 ( ( 0x72 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
3191 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
3192 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3193 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
3194 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
3195 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
3196 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
3197 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
3198 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
3199 : ( 0xAA == ((const U8*)s)[0] ) ? \
3200 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
3201 : ( 0xB3 == ((const U8*)s)[0] ) ? \
3202 ( ( 0x53 == ((const U8*)s)[1] ) ? \
3203 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
3204 : ( 0x55 == ((const U8*)s)[1] ) ? \
3205 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
3206 : ( 0x58 == ((const U8*)s)[1] ) ? \
3207 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3208 ( ( 0x43 == ((const U8*)s)[3] ) ? \
3209 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 0x1FB7 : 0x1FB6 )\
3211 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
3212 : ( 0x65 == ((const U8*)s)[1] ) ? \
3213 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3214 ( ( 0x43 == ((const U8*)s)[3] ) ? \
3215 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 0x1FC7 : 0x1FC6 )\
3217 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
3218 : ( 0x67 == ((const U8*)s)[1] ) ? \
3219 ( ( 0xAD == ((const U8*)s)[2] ) ? \
3220 ( ( 0x49 == ((const U8*)s)[3] ) ? \
3221 ( ( 0xAD == ((const U8*)s)[4] ) ? \
3222 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1FD2 \
3223 : ( 0x42 == ((const U8*)s)[5] ) ? 0x390 : 0 ) \
3224 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1FD7 : 0 )\
3226 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
3228 : ( 0xB4 == ((const U8*)s)[0] ) ? \
3229 ( ( 0x42 == ((const U8*)s)[1] ) ? \
3230 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
3231 : ( 0x46 == ((const U8*)s)[1] ) ? \
3232 ( ( 0xAD == ((const U8*)s)[2] ) ? \
3233 ( ( 0x49 == ((const U8*)s)[3] ) ? \
3234 ( ( 0xAD == ((const U8*)s)[4] ) ? \
3235 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1FE2 \
3236 : ( 0x42 == ((const U8*)s)[5] ) ? 0x3B0 : 0 ) \
3237 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1FE7 : 0 )\
3238 : ( 0x5F == ((const U8*)s)[3] ) ? \
3239 ( ( 0xAD == ((const U8*)s)[4] ) ? \
3240 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1F52 \
3241 : ( 0x42 == ((const U8*)s)[5] ) ? 0x1F54 : 0x1F50 ) \
3242 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1F56 : 0x1F50 )\
3244 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
3245 : ( 0x4A == ((const U8*)s)[1] ) ? \
3246 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3247 ( ( 0x43 == ((const U8*)s)[3] ) ? \
3248 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 0x1FF7 : 0x1FF6 )\
3250 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
3251 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )\
3252 : ( 0xB7 == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )
3255 /*** GENERATED CODE ***/
3256 #define what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) \
3257 ( ( 0x42 == ((const U8*)s)[1] ) ? \
3258 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
3259 : ( 0x46 == ((const U8*)s)[1] ) ? \
3260 ( ( 0xAD == ((const U8*)s)[2] ) ? \
3261 ( ( 0x5F == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
3262 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
3263 : ( 0x4A == ((const U8*)s)[1] ) ? \
3264 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3265 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
3266 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
3267 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )
3270 /*** GENERATED CODE ***/
3271 #define what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) \
3272 ( ( 0xBF == ((const U8*)s)[0] ) ? \
3273 ( ( 0x66 == ((const U8*)s)[1] ) ? \
3274 ( ( 0x41 == ((const U8*)s)[2] ) ? \
3275 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
3276 : ( 0x42 == ((const U8*)s)[2] ) ? \
3277 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
3278 : ( 0x43 == ((const U8*)s)[2] ) ? \
3279 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
3280 : ( 0x44 == ((const U8*)s)[2] ) ? \
3281 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
3282 : ( 0x45 == ((const U8*)s)[2] ) ? \
3283 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
3284 : ( 0x46 == ((const U8*)s)[2] ) ? \
3285 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
3286 : ( 0x47 == ((const U8*)s)[2] ) ? \
3287 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
3288 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
3289 : ( 0x67 == ((const U8*)s)[1] ) ? \
3290 ( ( 0x41 == ((const U8*)s)[2] ) ? \
3291 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
3292 : ( 0x42 == ((const U8*)s)[2] ) ? \
3293 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
3294 : ( 0x43 == ((const U8*)s)[2] ) ? \
3295 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
3296 : ( 0x44 == ((const U8*)s)[2] ) ? \
3297 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
3298 : ( 0x45 == ((const U8*)s)[2] ) ? \
3299 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
3300 : ( 0x46 == ((const U8*)s)[2] ) ? \
3301 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
3302 : ( 0x47 == ((const U8*)s)[2] ) ? \
3303 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
3304 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
3305 : ( 0x69 == ((const U8*)s)[1] ) ? \
3306 ( ( 0x41 == ((const U8*)s)[2] ) ? \
3307 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
3308 : ( 0x42 == ((const U8*)s)[2] ) ? \
3309 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
3310 : ( 0x43 == ((const U8*)s)[2] ) ? \
3311 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
3312 : ( 0x44 == ((const U8*)s)[2] ) ? \
3313 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
3314 : ( 0x45 == ((const U8*)s)[2] ) ? \
3315 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
3316 : ( 0x46 == ((const U8*)s)[2] ) ? \
3317 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
3318 : ( 0x47 == ((const U8*)s)[2] ) ? \
3319 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
3320 : ( 0x48 == ((const U8*)s)[2] ) ? \
3321 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
3322 : ( 0x57 == ((const U8*)s)[2] ) ? \
3323 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
3324 : ( 0x62 == ((const U8*)s)[2] ) ? \
3325 ( ( ( 0xB3 == ((const U8*)s)[3] ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
3326 : ( ( ( 0x6A == ((const U8*)s)[2] ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
3331 /*** GENERATED CODE ***/
3332 #define what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) \
3333 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
3334 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
3335 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3336 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
3337 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
3338 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
3339 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
3340 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
3341 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
3342 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
3343 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
3344 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
3345 : ( 0x8E == ((const U8*)s)[0] ) ? \
3346 ( ( 0x72 == ((const U8*)s)[1] ) ? \
3347 ( ( 0x8E == ((const U8*)s)[2] ) ? \
3348 ( ( 0x72 == ((const U8*)s)[3] ) ? 0x59 : 0 ) \
3349 : ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
3350 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3352 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
3353 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
3354 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
3355 ( ( 0x8E == ((const U8*)s)[1] ) ? \
3356 ( ( 0x72 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
3357 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
3358 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3359 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
3360 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
3361 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
3362 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
3363 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
3364 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
3365 : ( 0xAA == ((const U8*)s)[0] ) ? \
3366 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
3367 : ( 0xB3 == ((const U8*)s)[0] ) ? \
3368 ( ( 0x53 == ((const U8*)s)[1] ) ? \
3369 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
3370 : ( 0x55 == ((const U8*)s)[1] ) ? \
3371 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
3372 : ( 0x58 == ((const U8*)s)[1] ) ? \
3373 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3374 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
3375 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
3376 : ( 0x65 == ((const U8*)s)[1] ) ? \
3377 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3378 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
3379 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
3380 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
3381 : ( 0xB4 == ((const U8*)s)[0] ) ? \
3382 ( ( 0x42 == ((const U8*)s)[1] ) ? \
3383 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
3384 : ( 0x46 == ((const U8*)s)[1] ) ? \
3385 ( ( 0xAD == ((const U8*)s)[2] ) ? \
3386 ( ( 0x5F == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
3387 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
3388 : ( 0x4A == ((const U8*)s)[1] ) ? \
3389 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3390 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
3391 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
3392 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )\
3396 /*** GENERATED CODE ***/
3397 #define what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) \
3399 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
3400 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
3401 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3402 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
3403 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
3404 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
3405 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
3406 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
3407 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
3408 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
3409 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
3410 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
3411 : ( 0x8E == ((const U8*)s)[0] ) ? \
3412 ( ( 0x72 == ((const U8*)s)[1] ) ? \
3413 ( ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
3414 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3416 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
3417 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
3418 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
3419 ( ( 0x8E == ((const U8*)s)[1] ) ? \
3420 ( ( 0x72 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
3421 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
3422 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3423 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
3424 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
3425 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
3426 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
3427 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
3428 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
3429 : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
3431 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3432 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 0xFB00 \
3433 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
3434 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
3435 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
3436 ( ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
3437 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3442 /*** GENERATED CODE ***/
3443 #define what_MULTI_CHAR_FOLD_utf8_safe(s,e) \
3445 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
3446 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
3447 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )\
3449 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
3450 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
3451 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3452 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
3453 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
3454 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
3455 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
3456 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
3457 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
3458 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
3459 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
3460 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
3461 : ( 0x8E == ((const U8*)s)[0] ) ? \
3462 ( ( 0x72 == ((const U8*)s)[1] ) ? \
3463 ( ( 0x8E == ((const U8*)s)[2] ) ? \
3464 ( ( 0x72 == ((const U8*)s)[3] ) ? 0x59 : 0 ) \
3465 : ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
3466 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3468 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
3469 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
3470 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
3471 ( ( 0x8E == ((const U8*)s)[1] ) ? \
3472 ( ( 0x72 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
3473 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
3474 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3475 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
3476 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
3477 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
3478 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
3479 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
3480 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
3481 : ( 0xAA == ((const U8*)s)[0] ) ? \
3482 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
3483 : ( 0xB3 == ((const U8*)s)[0] ) ? \
3484 ( ( 0x53 == ((const U8*)s)[1] ) ? \
3485 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
3486 : ( 0x55 == ((const U8*)s)[1] ) ? \
3487 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
3488 : ( 0x58 == ((const U8*)s)[1] ) ? \
3489 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3490 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
3491 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
3492 : ( 0x65 == ((const U8*)s)[1] ) ? \
3493 ( ( 0xAF == ((const U8*)s)[2] ) ? \
3494 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
3495 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
3496 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
3497 : ( 0xB4 == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) )\
3498 : ((e)-(s) > 3) ? what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) )
3501 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
3503 %regcharclass_multi_char_folds::multi_char_folds('l', 'a')
3505 /*** GENERATED CODE ***/
3506 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
3508 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3509 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
3510 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
3511 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
3512 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
3514 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3515 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
3516 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
3519 /*** GENERATED CODE ***/
3520 #define what_MULTI_CHAR_FOLD_latin1_safe(s,e) \
3522 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3523 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
3524 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
3525 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
3526 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
3527 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
3528 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
3529 ( ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
3530 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3533 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3534 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 0xFB00 \
3535 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
3536 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
3537 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
3538 ( ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
3539 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
3544 THREE_CHAR_FOLD: A three-character multi-char fold
3546 %regcharclass_multi_char_folds::multi_char_folds('u', '3')
3548 /*** GENERATED CODE ***/
3549 #define is_THREE_CHAR_FOLD_utf8_safe(s,e) \
3551 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3552 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ) ? 3 : 0 )\
3553 : ( 0xB3 == ((const U8*)s)[0] ) ? \
3554 ( ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
3555 ( ( ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB3 == ((const U8*)s)[4] ) ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
3556 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAD == ((const U8*)s)[2] ) ) && ( 0x49 == ((const U8*)s)[3] ) ) ? ( ( 0xAD == ((const U8*)s)[4] ) ?\
3557 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
3558 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
3559 : ( 0xB4 == ((const U8*)s)[0] ) ? \
3560 ( ( 0x46 == ((const U8*)s)[1] ) ? \
3561 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] || 0x5F == ((const U8*)s)[3] ) ) ? ( ( 0xAD == ((const U8*)s)[4] ) ?\
3562 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
3563 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
3564 : ( ( ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB3 == ((const U8*)s)[4] ) ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
3566 : ( ( ( ((e)-(s) > 2) && ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ) && ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ) ? 3 : 0 )
3569 THREE_CHAR_FOLD: A three-character multi-char fold
3571 %regcharclass_multi_char_folds::multi_char_folds('l', '3')
3573 /*** GENERATED CODE ***/
3574 #define is_THREE_CHAR_FOLD_latin1_safe(s,e) \
3575 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ) && ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ) ? 3 : 0 )
3578 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
3580 %regcharclass_multi_char_folds::multi_char_folds('u', 'h')
3582 /*** GENERATED CODE ***/
3583 #define is_THREE_CHAR_FOLD_HEAD_utf8_safe(s,e) \
3585 ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
3586 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3587 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
3588 : ( 0x8E == ((const U8*)s)[0] ) ? \
3589 ( ( 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
3590 : ( 0xAA == ((const U8*)s)[0] ) ? \
3591 ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
3592 : ( 0xB3 == ((const U8*)s)[0] ) ? \
3593 ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) ? 2 \
3594 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
3595 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
3596 : ( 0x67 == ((const U8*)s)[1] ) ? \
3597 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
3599 : ( 0xB4 == ((const U8*)s)[0] ) ? \
3600 ( ( 0x42 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? 2 \
3601 : ( 0x46 == ((const U8*)s)[1] ) ? \
3602 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] || 0x5F == ((const U8*)s)[3] ) ) ? 4 : 2 )\
3603 : ( 0x4A == ((const U8*)s)[1] ) ? \
3604 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
3606 : ( 0xB7 == ((const U8*)s)[0] ) ? \
3607 ( ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x46 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3608 : ( 0xBF == ((const U8*)s)[0] ) ? \
3609 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x66, 0x67) ) ? \
3610 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) ? 3 : 0 )\
3611 : ( ( 0x69 == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x6A ) ) ? 3 : 0 )\
3614 ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
3615 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3616 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
3617 : ( 0x8E == ((const U8*)s)[0] ) ? \
3618 ( ( 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
3619 : ( 0xAA == ((const U8*)s)[0] ) ? \
3620 ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
3621 : ( 0xB3 == ((const U8*)s)[0] ) ? \
3622 ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0x65 ) ? 2 : 0 )\
3623 : ( 0xB4 == ((const U8*)s)[0] ) ? \
3624 ( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ? 2 : 0 )\
3625 : ( 0xB7 == ((const U8*)s)[0] ) ? \
3626 ( ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x46 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3627 : ( 0xBF == ((const U8*)s)[0] ) ? \
3628 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x66, 0x67) ) ? \
3629 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) ? 3 : 0 )\
3630 : ( ( 0x69 == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF8 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0x6A ) ) ? 3 : 0 )\
3633 ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
3634 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3635 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
3636 : ( 0x8E == ((const U8*)s)[0] ) ? \
3637 ( ( 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
3638 : ( 0xAA == ((const U8*)s)[0] ) ? \
3639 ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
3640 : ( 0xB3 == ((const U8*)s)[0] ) ? \
3641 ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xFD ) == 0xAC ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[1]) & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0x65 ) ? 2 : 0 )\
3642 : ( ( 0xB4 == ((const U8*)s)[0] ) && ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ) ? 2 : 0 )\
3644 ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0x9F ) == 'f' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) )\
3648 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
3650 %regcharclass_multi_char_folds::multi_char_folds('l', 'h')
3652 /*** GENERATED CODE ***/
3653 #define is_THREE_CHAR_FOLD_HEAD_latin1_safe(s,e) \
3655 ( ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ? 1\
3656 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
3657 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
3660 ( ( ( ((const U8*)s)[0] & 0xAF ) == 'a' ) || ( ( ((const U8*)s)[0] & 0x9F ) == 'f' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 'h' ) || ( ( ((const U8*)s)[0] & 0xBE ) == 's' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) )\
3664 FOLDS_TO_MULTI: characters that fold to multi-char strings
3666 \p{_Perl_Folds_To_Multi_Char}
3668 /*** GENERATED CODE ***/
3669 #define is_FOLDS_TO_MULTI_utf8(s) \
3670 ( ( 0x80 == ((const U8*)s)[0] ) ? \
3671 ( ( 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
3672 : ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 0xB2, 0xB3) ) ?\
3673 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
3674 : ( 0x8D == ((const U8*)s)[0] ) ? \
3675 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
3676 : ( 0xB7 == ((const U8*)s)[0] ) ? \
3677 ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3678 : ( 0xBF == ((const U8*)s)[0] ) ? \
3679 ( ( 0x62 == ((const U8*)s)[1] ) ? \
3680 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x64, 0x68) || 0x71 == ((const U8*)s)[2] ) ? 3 : 0 )\
3681 : ( 0x68 == ((const U8*)s)[1] ) ? \
3682 ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF9 ) == 0xB0 ) ? 3 : 0 )\
3683 : ( 0x6A == ((const U8*)s)[1] ) ? \
3685 : ( 0x70 == ((const U8*)s)[1] ) ? \
3686 ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF0 ) == 0xA0 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xFA ) == 0xB2 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF7 ) == 0xB4 ) ) ? 3 : 0 )\
3687 : ( 0x71 == ((const U8*)s)[1] ) ? \
3688 ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xEA ) == 0xA2 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF7 ) == 0xA4 ) ) ? 3 : 0 )\
3689 : ( ( 0x72 == ((const U8*)s)[1] ) && ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xEA ) == 0xA2 ) || ((const U8*)s)[2] == 0x45 || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[2]) & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
3690 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xA0, 0xA6) || inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[3]), 0xB3, 0xB7) ) ) ? 4 : 0 )
3693 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
3695 \p{_Perl_Problematic_Locale_Folds}
3697 /*** GENERATED CODE ***/
3698 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
3699 ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0x80 ) == 0x00 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xE0 ) == 0x80 ) ) ? 1\
3700 : ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[0]), 0xC5, 0xC7) ) ?\
3702 : ( 0x8C == ((const U8*)s)[0] ) ? \
3703 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x58) ) ? 2 : 0 ) \
3704 : ( 0x8D == ((const U8*)s)[0] ) ? \
3705 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
3706 : ( 0x8E == ((const U8*)s)[0] ) ? \
3707 ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
3708 : ( 0x9B == ((const U8*)s)[0] ) ? \
3709 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
3710 : ( 0xAD == ((const U8*)s)[0] ) ? \
3711 ( ( 0x48 == ((const U8*)s)[1] ) ? 2 : 0 ) \
3712 : ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xB2, 0xB3) ) ? \
3713 ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
3714 : ( 0xBF == ((const U8*)s)[0] ) ? \
3715 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x64, 0x68) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3716 : ( 0xCA == ((const U8*)s)[0] ) ? \
3717 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x52) ) ) ? 3 : 0 )\
3718 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x47) ) ) ? 4 : 0 )
3720 /*** GENERATED CODE ***/
3721 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
3722 ( cp <= 0xFF || ( 0xFF < cp && \
3723 ( inRANGE_helper_(UV, cp, 0x130, 0x131) || ( 0x131 < cp && \
3724 ( 0x149 == cp || ( 0x149 < cp && \
3725 ( 0x178 == cp || ( 0x178 < cp && \
3726 ( 0x17F == cp || ( 0x17F < cp && \
3727 ( 0x1F0 == cp || ( 0x1F0 < cp && \
3728 ( 0x307 == cp || ( 0x307 < cp && \
3729 ( 0x39C == cp || ( 0x39C < cp && \
3730 ( 0x3BC == cp || ( 0x3BC < cp && \
3731 ( inRANGE_helper_(UV, cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
3732 ( 0x1E9E == cp || ( 0x1E9E < cp && \
3733 ( inRANGE_helper_(UV, cp, 0x212A, 0x212B) || inRANGE_helper_(UV, cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
3736 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
3738 \p{_Perl_Problematic_Locale_Foldeds_Start}
3740 /*** GENERATED CODE ***/
3741 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
3742 ( ( ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0x80 ) == 0x00 ) || ( ( NATIVE_UTF8_TO_I8(((const U8*)s)[0]) & 0xE0 ) == 0x80 ) ) ? 1\
3743 : ( inRANGE_helper_(U8, NATIVE_UTF8_TO_I8(((const U8*)s)[0]), 0xC5, 0xC7) ) ?\
3745 : ( 0x8C == ((const U8*)s)[0] ) ? \
3746 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x58) ) ? 2 : 0 ) \
3747 : ( 0x8D == ((const U8*)s)[0] ) ? \
3748 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
3749 : ( 0x8E == ((const U8*)s)[0] ) ? \
3750 ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
3751 : ( 0x9B == ((const U8*)s)[0] ) ? \
3752 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
3753 : ( 0xAA == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 0xB2, 0xB3) ) ?\
3754 ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
3755 : ( 0xBF == ((const U8*)s)[0] ) ? \
3756 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x64, 0x68) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
3757 : ( 0xCA == ((const U8*)s)[0] ) ? \
3758 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x52) ) ) ? 3 : 0 )\
3759 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x47) ) ) ? 4 : 0 )
3761 /*** GENERATED CODE ***/
3762 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
3763 ( cp <= 0xFF || ( 0xFF < cp && \
3764 ( inRANGE_helper_(UV, cp, 0x130, 0x131) || ( 0x131 < cp && \
3765 ( 0x149 == cp || ( 0x149 < cp && \
3766 ( 0x178 == cp || ( 0x178 < cp && \
3767 ( 0x17F == cp || ( 0x17F < cp && \
3768 ( 0x1F0 == cp || ( 0x1F0 < cp && \
3769 ( 0x2BC == cp || ( 0x2BC < cp && \
3770 ( 0x39C == cp || ( 0x39C < cp && \
3771 ( 0x3BC == cp || ( 0x3BC < cp && \
3772 ( inRANGE_helper_(UV, cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
3773 ( 0x1E9E == cp || ( 0x1E9E < cp && \
3774 ( inRANGE_helper_(UV, cp, 0x212A, 0x212B) || inRANGE_helper_(UV, cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
3777 PATWS: pattern white space
3781 /*** GENERATED CODE ***/
3782 #define is_PATWS_safe(s,e,is_utf8) \
3783 ( ( LIKELY((e) > (s)) ) ? \
3784 ( ( '\t' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] || ' ' == ((const U8*)s)[0] ) ? 1\
3785 : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
3786 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x55, 0x56) ) ? 3 : 0 )\
3787 : ( ( 0x42 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 ) : 0 )\
3791 HANGUL_ED: Hangul syllables whose first UTF-8 byte is \xED
3795 /*** GENERATED CODE ***/
3796 #define is_HANGUL_ED_utf8_safe(s,e) \
3799 #endif /* EBCDIC 037 */
3801 #endif /* PERL_REGCHARCLASS_H_ */
3804 * 7229a97216f54f7d47d5cff56fc8dbc185dcfe40db20533f8034a1215af787fe lib/Unicode/UCD.pm
3805 * 764f420cedfc8b43d9fec251c957a5d55fc45d40f6573f162990ed1dce7e36e0 lib/unicore/ArabicShaping.txt
3806 * b8f32554c6f658821fb0ee742d21c5b1f2086b9bf13071fed04894b022f93d67 lib/unicore/BidiBrackets.txt
3807 * d7afdadd1bbd66f5a663ac0e8f7958f18fd9491fc0bc59ec5877cb82db71db7d lib/unicore/BidiMirroring.txt
3808 * f3907b395d410f1b97342292ca6bc83dd12eb4b205f2a0c48efdef99e517d7b0 lib/unicore/Blocks.txt
3809 * 6f1f9c588eb4a5c718d9e8f93b782685e5c7fec872cf05e8e6878053599e09bb lib/unicore/CaseFolding.txt
3810 * 89e83cf9cc8bef6c1f8bf77e42cf6f0341dfa42e66261f4dbe9b492e7a23c8ee lib/unicore/CompositionExclusions.txt
3811 * 60caa81b99a4dfb0bc5d38440d323073e3f356f46f9ca7869da848cd0715408b lib/unicore/DAge.txt
3812 * 39d35161f2954497f69e08bdb9e701493f476a3d30222de20028feda36c1dabd lib/unicore/DCoreProperties.txt
3813 * 4d4c03892dea9146d674b686e495df2d55a28d071ac474041d73518f887abddc lib/unicore/DNormalizationProps.txt
3814 * 43adc76c0686a42cb370764eb8cfe2b2a45b10b855e5572a2db4a0eecce15d5b lib/unicore/EastAsianWidth.txt
3815 * 628929adae97427348337003e39d29da7b55acdddfac21e06d3dacad92237834 lib/unicore/EquivalentUnifiedIdeograph.txt
3816 * 329612f2aea8672379d93202ca6fcd948b4f08062d4fc43ee31c7061c66ed279 lib/unicore/HangulSyllableType.txt
3817 * c6108ca140e054b55a5b0378e7ebed8b1ef0e846251f6195361bc9af8ffc61b1 lib/unicore/IdStatus.txt
3818 * c7e57f71176fb3035e0c85e4d9f30b08374588b2bd16e729efbc7e49c7c9438f lib/unicore/IdType.txt
3819 * cbb9e2193e26c9b3d595a8f0ff4fd2ad956482309143ceb4ce5469c19f14feba lib/unicore/IndicPositionalCategory.txt
3820 * 615f1b92ba7ec76e18c5b5c05d2e1836e4b98bc791eb9e27946c7621fc047ae7 lib/unicore/IndicSyllabicCategory.txt
3821 * e0f42a73ec3bf9fa4bc404ea0a2921675c73742905dacbe439675fe8c9b2359f lib/unicore/Jamo.txt
3822 * e97e4259d0d20fab150b9c7b4b28abfae5cd78ca97e7f4ac6ed20d685d5f4a7c lib/unicore/LineBreak.txt
3823 * 9953f0fcebf5ea8091c5c581e4df0e43f20d2533c84ccca7987a9bb819a896a8 lib/unicore/NameAliases.txt
3824 * 4ff660cb922480cd5aab9a689b1a6905d0a54575baf9967d0f1e00ac866f04dd lib/unicore/NamedSequences.txt
3825 * d811971453e7075e1ad56fb1b301eece5aa80757b81f6156e74a1bfb3ae5ceb1 lib/unicore/NormTest.txt
3826 * 53d614508e2a0b2305a8aa21cd60d993de9326cdf65993660dfcce4503548583 lib/unicore/PropList.txt
3827 * 440fd3e5460b9bfe31da67b6f923992e1989d31fe2ed91e091c4b8f8e2620bf9 lib/unicore/PropValueAliases.txt
3828 * 33a9f2266ad6b8e8de05c0ea3dfac411ac62cf8839ff1c94057471e4c5f6a2b3 lib/unicore/PropertyAliases.txt
3829 * 049117ce26b9769fe2749b06eef51a50a89faef4a97764dd2d81daa715980700 lib/unicore/ScriptExtensions.txt
3830 * 9e88f0a677df47311106340be8ede2ecdacd9c1c931831218d2be6d5508e0039 lib/unicore/Scripts.txt
3831 * 8d5de354eef79f2395a54c9c7dcebbaf3d30fc962d0f85611ea97aa973a0c451 lib/unicore/SpecialCasing.txt
3832 * ff58e5823bd095166564a006e47d111130813dcf8bf234ef79fa51a870edb48f lib/unicore/UnicodeData.txt
3833 * b71d2d4b57b4f751a40658e9ddb1ddc8aa0a9220bf37890d9a825e30e0612ddc lib/unicore/Unikemet.txt
3834 * 24ac1474554eb55c85ace5c16d551535a8c52cdc2f4c13cf68c3839214339bbe lib/unicore/VerticalOrientation.txt
3835 * ee2b9354d270ac061b29f09662cafea06341d77e704b8cc6bd72aaeeda363cb5 lib/unicore/auxiliary/GCBTest.txt
3836 * c29360bd6f7132811d701d29069541e827eb44bfc4c8fbde8c370d6982689dc1 lib/unicore/auxiliary/GraphemeBreakProperty.txt
3837 * 910759a611a479f37df4f535d2e64d7589be3c5ac5f7491cf1fb4fa4cdb211e9 lib/unicore/auxiliary/LBTest.txt
3838 * 0aef84034ee1789eb71021454fac384e83080b05922272d63cf297f4bf08150e lib/unicore/auxiliary/SBTest.txt
3839 * 20aab5eca3842c7a27cc6756d74488a4a5f744c8dca2948ec1128f26a60d1f79 lib/unicore/auxiliary/SentenceBreakProperty.txt
3840 * ad985d5721f3fa6b45495663dfe44180f2f68976100dee0ea7451ef1a8f838e8 lib/unicore/auxiliary/WBTest.txt
3841 * 476464e71a4b7b779b8ba7c5671f4338fea77da8e6b6b05fb82b3fdd14603779 lib/unicore/auxiliary/WordBreakProperty.txt
3842 * f1365a5173eee18e1f98b240cdc492e84a25f1ce7e0c9d1094eb29c41a22696a lib/unicore/emoji/emoji.txt
3843 * 71ed943a49c58568d8d92e80ecc2ba2f06e62aee9c8ebb0e6e8bd2c3ed8b180e lib/unicore/extracted/DBidiClass.txt
3844 * 1ed4d4791c0e34fcad4dfcb5dd4c4122e16428241b75452f05d780ffa661f89d lib/unicore/extracted/DBinaryProperties.txt
3845 * 52064d588c98c623b2373905e6a449eb520f900113954bcd212e94ef0810b471 lib/unicore/extracted/DCombiningClass.txt
3846 * 29f8bff31296bab424e8d728e2a3c0a3240c5a67dadf47fa7092ec0585ad91b6 lib/unicore/extracted/DDecompositionType.txt
3847 * 372e34de237e5a644ce8379a0d02b91a1f584f04d4fb240ea6ccc87c5767f926 lib/unicore/extracted/DEastAsianWidth.txt
3848 * 7676ab755a41ef82108460238569e60ad65c191ddafe61b36c6765ec1353f293 lib/unicore/extracted/DGeneralCategory.txt
3849 * ab2c98db3f945f14f7fe8ab1c80e5c77734cecfd1f34a443ffa283c51fd4c9d7 lib/unicore/extracted/DJoinGroup.txt
3850 * 6bd08b97da66b70ccfdab105a352de2984e02625239ec5695422c99b33d854f0 lib/unicore/extracted/DJoinType.txt
3851 * 4be1c18e7b121d951018065b453bb05083f624c8f905ce8be7c0f354c9097c95 lib/unicore/extracted/DLineBreak.txt
3852 * 786833e0a3f5ec0c0cd0940e4c15f730f3a92163f354ecd7dede28a70c0fa892 lib/unicore/extracted/DNumType.txt
3853 * 00b43cc5c9b86a834f82389c4537f103e652821387daa556f0bd220f6c23007e lib/unicore/extracted/DNumValues.txt
3854 * 308c29a8d4df1761b0ea5a6a93fbe8649a80b7863d2848be6dc2d65238348e13 lib/unicore/mktables
3855 * 63f771c327e92574fbd77919586079c38f669058a5e6b67ccec385ef8fcde882 lib/unicore/version
3856 * 0a6b5ab33bb1026531f816efe81aea1a8ffcd34a27cbea37dd6a70a63d73c844 regen/charset_translations.pl
3857 * 2a984ef37eb37e718ed25d472988745196816f9147d6ee6822a8efeafda340e5 regen/regcharclass.pl
3858 * b2f896452d2b30da3e04800f478c60c1fd0b03d6b668689b020f1e3cf1f1cdd9 regen/regcharclass_multi_char_folds.pl
3859 * ex: set ro ft=c: */