1 /* -*- 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 NONCHAR: Non character code points
163 /*** GENERATED CODE ***/
164 #define is_NONCHAR_utf8_safe(s,e) \
165 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xEF == ((const U8*)s)[0] ) ?\
166 ( ( 0xB7 == ((const U8*)s)[1] ) ? \
167 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x90, 0xAF) ) ? 3 : 0 )\
168 : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xBE, 0xBF) ) ) ? 3 : 0 )\
169 : ( 0xF0 == ((const U8*)s)[0] ) ? \
170 ( ( ( ( ((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 )\
171 : ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xF1, 0xF3) ) ? \
172 ( ( ( ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xBE, 0xBF) ) ) ? 4 : 0 )\
173 : ( ( ( ( 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 )
176 SURROGATE: Surrogate code points
180 /*** GENERATED CODE ***/
181 #define is_SURROGATE_utf8_safe(s,e) \
182 ( ( ( ( ( ((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 )
185 QUOTEMETA: Meta-characters that \Q should quote
189 /*** GENERATED CODE ***/
190 #define is_QUOTEMETA_high(s) \
191 ( ( 0xCD == ((const U8*)s)[0] ) ? \
192 ( ( 0x8F == ((const U8*)s)[1] ) ? 2 : 0 ) \
193 : ( 0xD8 == ((const U8*)s)[0] ) ? \
194 ( ( 0x9C == ((const U8*)s)[1] ) ? 2 : 0 ) \
195 : ( 0xE1 == ((const U8*)s)[0] ) ? \
196 ( ( 0x85 == ((const U8*)s)[1] ) ? \
197 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x9F, 0xA0) ) ? 3 : 0 ) \
198 : ( 0x9A == ((const U8*)s)[1] ) ? \
199 ( ( 0x80 == ((const U8*)s)[2] ) ? 3 : 0 ) \
200 : ( 0x9E == ((const U8*)s)[1] ) ? \
201 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xB4, 0xB5) ) ? 3 : 0 ) \
202 : ( ( 0xA0 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x8B, 0x8E) ) ) ? 3 : 0 )\
203 : ( 0xE2 == ((const U8*)s)[0] ) ? \
204 ( ( 0x80 == ((const U8*)s)[1] ) ? \
205 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0xBE) ) ? 3 : 0 ) \
206 : ( 0x81 == ((const U8*)s)[1] ) ? \
207 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x81, 0x93) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x95, 0xAF) ) ? 3 : 0 )\
208 : ( 0x86 == ((const U8*)s)[1] ) ? \
209 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x90, 0xBF) ) ? 3 : 0 ) \
210 : ( 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) ) ?\
212 : ( 0x91 == ((const U8*)s)[1] ) ? \
213 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x9F) ) ? 3 : 0 ) \
214 : ( 0x9D == ((const U8*)s)[1] ) ? \
215 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0xB5) ) ? 3 : 0 ) \
216 : ( ( 0x9E == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x94, 0xBF) ) ) ? 3 : 0 )\
217 : ( 0xE3 == ((const U8*)s)[0] ) ? \
218 ( ( 0x80 == ((const U8*)s)[1] ) ? \
219 ( ( 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 )\
220 : ( ( 0x85 == ((const U8*)s)[1] ) && ( 0xA4 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
221 : ( 0xEF == ((const U8*)s)[0] ) ? \
222 ( ( 0xB4 == ((const U8*)s)[1] ) ? \
223 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xBE, 0xBF) ) ? 3 : 0 ) \
224 : ( 0xB8 == ((const U8*)s)[1] ) ? \
225 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x8F) ) ? 3 : 0 ) \
226 : ( 0xB9 == ((const U8*)s)[1] ) ? \
227 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x85, 0x86) ) ? 3 : 0 ) \
228 : ( 0xBB == ((const U8*)s)[1] ) ? \
229 ( ( 0xBF == ((const U8*)s)[2] ) ? 3 : 0 ) \
230 : ( 0xBE == ((const U8*)s)[1] ) ? \
231 ( ( 0xA0 == ((const U8*)s)[2] ) ? 3 : 0 ) \
232 : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xB0, 0xB8) ) ) ? 3 : 0 )\
233 : ( 0xF0 == ((const U8*)s)[0] ) ? \
234 ( ( 0x9B == ((const U8*)s)[1] ) ? \
235 ( ( ( 0xB2 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xA0, 0xA3) ) ) ? 4 : 0 )\
236 : ( ( ( 0x9D == ((const U8*)s)[1] ) && ( 0x85 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0xB3, 0xBA) ) ) ? 4 : 0 )\
237 : ( ( 0xF3 == ((const U8*)s)[0] ) && ( 0xA0 == ((const U8*)s)[1] ) ) ? 4 : 0 )
240 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
242 %regcharclass_multi_char_folds::multi_char_folds('u', 'a')
244 /*** GENERATED CODE ***/
245 #define is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
246 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
247 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
248 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )
251 /*** GENERATED CODE ***/
252 #define is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
253 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
254 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
255 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
256 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
257 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
258 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
259 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
260 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ? 2\
261 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 3 : 0 )\
262 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
263 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
264 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
265 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
266 : ( 0xC5 == ((const U8*)s)[0] ) ? \
267 ( ( 0xBF == ((const U8*)s)[1] ) ? \
268 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[2], 's', 't') ) ? 3\
269 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
271 : ( 0xCA == ((const U8*)s)[0] ) ? \
272 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
273 : ( 0xCE == ((const U8*)s)[0] ) ? \
274 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
275 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
276 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
277 ( ( 0xCD == ((const U8*)s)[2] ) ? \
278 ( ( 0x82 == ((const U8*)s)[3] ) ? \
279 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
281 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
282 : ( 0xB9 == ((const U8*)s)[1] ) ? \
283 ( ( 0xCC == ((const U8*)s)[2] ) ? \
284 ( ( 0x88 == ((const U8*)s)[3] ) ? \
285 ( ( 0xCC == ((const U8*)s)[4] ) ? \
286 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
287 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
289 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
291 : ( 0xCF == ((const U8*)s)[0] ) ? \
292 ( ( 0x81 == ((const U8*)s)[1] ) ? \
293 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
294 : ( 0x85 == ((const U8*)s)[1] ) ? \
295 ( ( 0xCC == ((const U8*)s)[2] ) ? \
296 ( ( 0x88 == ((const U8*)s)[3] ) ? \
297 ( ( 0xCC == ((const U8*)s)[4] ) ? \
298 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
299 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
300 : ( 0x93 == ((const U8*)s)[3] ) ? \
301 ( ( 0xCC == ((const U8*)s)[4] ) ? \
302 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 4 )\
303 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
305 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
306 : ( 0x89 == ((const U8*)s)[1] ) ? \
307 ( ( 0xCD == ((const U8*)s)[2] ) ? \
308 ( ( 0x82 == ((const U8*)s)[3] ) ? \
309 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
311 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
312 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
313 : ( 0xD5 == ((const U8*)s)[0] ) ? \
314 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
315 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
316 : ( 0xB4 == ((const U8*)s)[1] ) ? \
317 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
318 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
319 : ( 0xE1 == ((const U8*)s)[0] ) ? \
320 ( ( 0xBC == ((const U8*)s)[1] ) ? \
321 ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
322 : ( ( ( ( 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 )\
326 /*** GENERATED CODE ***/
327 #define is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
328 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
329 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
330 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
331 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
332 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
333 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
334 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
335 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
336 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
337 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
338 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
339 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
340 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
341 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ? 2\
342 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 3 : 0 )\
343 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
344 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
345 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
346 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
347 : ( 0xC5 == ((const U8*)s)[0] ) ? \
348 ( ( 0xBF == ((const U8*)s)[1] ) ? \
349 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[2], 's', 't') ) ? 3\
350 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
352 : ( 0xCA == ((const U8*)s)[0] ) ? \
353 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
354 : ( 0xCE == ((const U8*)s)[0] ) ? \
355 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
356 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
357 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
358 ( ( 0xCD == ((const U8*)s)[2] ) ? \
359 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
360 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
361 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
362 : ( 0xCF == ((const U8*)s)[0] ) ? \
363 ( ( 0x81 == ((const U8*)s)[1] ) ? \
364 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
365 : ( 0x85 == ((const U8*)s)[1] ) ? \
366 ( ( 0xCC == ((const U8*)s)[2] ) ? \
367 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
368 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
369 : ( 0x89 == ((const U8*)s)[1] ) ? \
370 ( ( 0xCD == ((const U8*)s)[2] ) ? \
371 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
372 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
373 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
374 : ( 0xD5 == ((const U8*)s)[0] ) ? \
375 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
376 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
377 : ( 0xB4 == ((const U8*)s)[1] ) ? \
378 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
379 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
383 /*** GENERATED CODE ***/
384 #define is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
386 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
387 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
388 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
389 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
390 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
391 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
392 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
393 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
394 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
395 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
396 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
397 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
398 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
399 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ? 2\
400 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 3 : 0 )\
401 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
402 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
403 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
404 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
405 : ( 0xC5 == ((const U8*)s)[0] ) ? \
406 ( ( ( 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 )\
407 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
409 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
410 ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
411 : ( ( ( ((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 )\
415 /*** GENERATED CODE ***/
416 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
418 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
419 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
420 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )\
422 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
423 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
424 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
425 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
426 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
427 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
428 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
429 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
430 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
431 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
432 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
433 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
434 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
435 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[1], 's', 't') ) ? 2\
436 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 3 : 0 )\
437 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
438 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
439 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) || ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ) ?\
440 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
441 : ( 0xC5 == ((const U8*)s)[0] ) ? \
442 ( ( 0xBF == ((const U8*)s)[1] ) ? \
443 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 'S', 'T') || inRANGE_helper_(U8, ((const U8*)s)[2], 's', 't') ) ? 3\
444 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
446 : ( 0xCA == ((const U8*)s)[0] ) ? \
447 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 3 : 0 )\
448 : ( 0xCE == ((const U8*)s)[0] ) ? \
449 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
450 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
451 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
452 ( ( 0xCD == ((const U8*)s)[2] ) ? \
453 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
454 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
455 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
456 : ( 0xCF == ((const U8*)s)[0] ) ? \
457 ( ( 0x81 == ((const U8*)s)[1] ) ? \
458 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
459 : ( 0x85 == ((const U8*)s)[1] ) ? \
460 ( ( 0xCC == ((const U8*)s)[2] ) ? \
461 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
462 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
463 : ( 0x89 == ((const U8*)s)[1] ) ? \
464 ( ( 0xCD == ((const U8*)s)[2] ) ? \
465 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
466 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
467 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
468 : ( 0xD5 == ((const U8*)s)[0] ) ? \
469 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
470 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
471 : ( 0xB4 == ((const U8*)s)[1] ) ? \
472 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
473 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
474 : ( 0xE1 == ((const U8*)s)[0] ) ? \
475 ( ( 0xBC == ((const U8*)s)[1] ) ? \
476 ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
477 : ( ( ( ( 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 )\
479 : ((e)-(s) > 3) ? is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )
481 /*** GENERATED CODE ***/
482 #define what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
483 ( ( 0x81 == ((const U8*)s)[1] ) ? \
484 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
485 : ( 0x85 == ((const U8*)s)[1] ) ? \
486 ( ( 0xCC == ((const U8*)s)[2] ) ? \
487 ( ( 0x88 == ((const U8*)s)[3] ) ? \
488 ( ( 0xCC == ((const U8*)s)[4] ) ? \
489 ( ( 0x80 == ((const U8*)s)[5] ) ? 0x1FE2 \
490 : ( 0x81 == ((const U8*)s)[5] ) ? 0x3B0 : 0 ) \
491 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 0x1FE7 : 0 )\
492 : ( 0x93 == ((const U8*)s)[3] ) ? \
493 ( ( 0xCC == ((const U8*)s)[4] ) ? \
494 ( ( 0x80 == ((const U8*)s)[5] ) ? 0x1F52 \
495 : ( 0x81 == ((const U8*)s)[5] ) ? 0x1F54 : 0x1F50 ) \
496 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 0x1F56 : 0x1F50 )\
498 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
499 : ( 0x89 == ((const U8*)s)[1] ) ? \
500 ( ( 0xCD == ((const U8*)s)[2] ) ? \
501 ( ( 0x82 == ((const U8*)s)[3] ) ? \
502 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 0x1FF7 : 0x1FF6 )\
504 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
505 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )
508 /*** GENERATED CODE ***/
509 #define what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
510 ( ( 0xD5 == ((const U8*)s)[0] ) ? \
511 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
512 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x587 : 0 )\
513 : ( 0xB4 == ((const U8*)s)[1] ) ? \
514 ( ( 0xD5 == ((const U8*)s)[2] ) ? \
515 ( ( 0xA5 == ((const U8*)s)[3] ) ? 0xFB14 \
516 : ( 0xAB == ((const U8*)s)[3] ) ? 0xFB15 \
517 : ( 0xAD == ((const U8*)s)[3] ) ? 0xFB17 \
518 : ( 0xB6 == ((const U8*)s)[3] ) ? 0xFB13 : 0 ) \
520 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 0xFB16 : 0 )\
521 : ( 0xE1 == ((const U8*)s)[0] ) ? \
522 ( ( 0xBC == ((const U8*)s)[1] ) ? \
523 ( ( 0x80 == ((const U8*)s)[2] ) ? \
524 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
525 : ( 0x81 == ((const U8*)s)[2] ) ? \
526 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
527 : ( 0x82 == ((const U8*)s)[2] ) ? \
528 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
529 : ( 0x83 == ((const U8*)s)[2] ) ? \
530 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
531 : ( 0x84 == ((const U8*)s)[2] ) ? \
532 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
533 : ( 0x85 == ((const U8*)s)[2] ) ? \
534 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
535 : ( 0x86 == ((const U8*)s)[2] ) ? \
536 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
537 : ( 0x87 == ((const U8*)s)[2] ) ? \
538 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
539 : ( 0xA0 == ((const U8*)s)[2] ) ? \
540 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
541 : ( 0xA1 == ((const U8*)s)[2] ) ? \
542 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
543 : ( 0xA2 == ((const U8*)s)[2] ) ? \
544 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
545 : ( 0xA3 == ((const U8*)s)[2] ) ? \
546 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
547 : ( 0xA4 == ((const U8*)s)[2] ) ? \
548 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
549 : ( 0xA5 == ((const U8*)s)[2] ) ? \
550 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
551 : ( 0xA6 == ((const U8*)s)[2] ) ? \
552 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
553 : ( ( ( 0xA7 == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
554 : ( 0xBD == ((const U8*)s)[1] ) ? \
555 ( ( 0xA0 == ((const U8*)s)[2] ) ? \
556 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
557 : ( 0xA1 == ((const U8*)s)[2] ) ? \
558 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
559 : ( 0xA2 == ((const U8*)s)[2] ) ? \
560 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
561 : ( 0xA3 == ((const U8*)s)[2] ) ? \
562 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
563 : ( 0xA4 == ((const U8*)s)[2] ) ? \
564 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
565 : ( 0xA5 == ((const U8*)s)[2] ) ? \
566 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
567 : ( 0xA6 == ((const U8*)s)[2] ) ? \
568 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
569 : ( 0xA7 == ((const U8*)s)[2] ) ? \
570 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
571 : ( 0xB0 == ((const U8*)s)[2] ) ? \
572 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
573 : ( 0xB4 == ((const U8*)s)[2] ) ? \
574 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
575 : ( ( ( 0xBC == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
580 /*** GENERATED CODE ***/
581 #define what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
582 ( ( 0x81 == ((const U8*)s)[1] ) ? \
583 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
584 : ( 0x85 == ((const U8*)s)[1] ) ? \
585 ( ( 0xCC == ((const U8*)s)[2] ) ? \
586 ( ( 0x93 == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
587 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
588 : ( 0x89 == ((const U8*)s)[1] ) ? \
589 ( ( 0xCD == ((const U8*)s)[2] ) ? \
590 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
591 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
592 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )
595 /*** GENERATED CODE ***/
596 #define what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
597 ( ( 0xD5 == ((const U8*)s)[0] ) ? \
598 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
599 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x587 : 0 )\
600 : ( 0xB4 == ((const U8*)s)[1] ) ? \
601 ( ( 0xD5 == ((const U8*)s)[2] ) ? \
602 ( ( 0xA5 == ((const U8*)s)[3] ) ? 0xFB14 \
603 : ( 0xAB == ((const U8*)s)[3] ) ? 0xFB15 \
604 : ( 0xAD == ((const U8*)s)[3] ) ? 0xFB17 \
605 : ( 0xB6 == ((const U8*)s)[3] ) ? 0xFB13 : 0 ) \
607 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 0xFB16 : 0 )\
608 : ( 0xE1 == ((const U8*)s)[0] ) ? \
609 ( ( 0xBC == ((const U8*)s)[1] ) ? \
610 ( ( 0x80 == ((const U8*)s)[2] ) ? \
611 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
612 : ( 0x81 == ((const U8*)s)[2] ) ? \
613 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
614 : ( 0x82 == ((const U8*)s)[2] ) ? \
615 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
616 : ( 0x83 == ((const U8*)s)[2] ) ? \
617 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
618 : ( 0x84 == ((const U8*)s)[2] ) ? \
619 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
620 : ( 0x85 == ((const U8*)s)[2] ) ? \
621 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
622 : ( 0x86 == ((const U8*)s)[2] ) ? \
623 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
624 : ( 0x87 == ((const U8*)s)[2] ) ? \
625 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
626 : ( 0xA0 == ((const U8*)s)[2] ) ? \
627 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
628 : ( 0xA1 == ((const U8*)s)[2] ) ? \
629 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
630 : ( 0xA2 == ((const U8*)s)[2] ) ? \
631 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
632 : ( 0xA3 == ((const U8*)s)[2] ) ? \
633 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
634 : ( 0xA4 == ((const U8*)s)[2] ) ? \
635 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
636 : ( 0xA5 == ((const U8*)s)[2] ) ? \
637 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
638 : ( 0xA6 == ((const U8*)s)[2] ) ? \
639 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
640 : ( ( ( 0xA7 == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
641 : ( 0xBD == ((const U8*)s)[1] ) ? \
642 ( ( 0xA0 == ((const U8*)s)[2] ) ? \
643 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
644 : ( 0xA1 == ((const U8*)s)[2] ) ? \
645 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
646 : ( 0xA2 == ((const U8*)s)[2] ) ? \
647 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
648 : ( 0xA3 == ((const U8*)s)[2] ) ? \
649 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
650 : ( 0xA4 == ((const U8*)s)[2] ) ? \
651 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
652 : ( 0xA5 == ((const U8*)s)[2] ) ? \
653 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
654 : ( 0xA6 == ((const U8*)s)[2] ) ? \
655 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
656 : ( 0xA7 == ((const U8*)s)[2] ) ? \
657 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
658 : ( 0xB0 == ((const U8*)s)[2] ) ? \
659 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
660 : ( 0xB4 == ((const U8*)s)[2] ) ? \
661 ( ( ( 0xCE == ((const U8*)s)[3] ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
662 : ( ( ( 0xBC == ((const U8*)s)[2] ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
667 /*** GENERATED CODE ***/
668 #define what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) \
669 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
670 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
671 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
672 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
673 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
674 : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
675 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
676 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
677 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
678 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
679 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
680 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
681 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
682 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
683 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
684 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
685 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
686 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
687 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
688 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
689 : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
690 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
691 : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
692 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
693 : ( 0xC5 == ((const U8*)s)[0] ) ? \
694 ( ( 0xBF == ((const U8*)s)[1] ) ? \
695 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
696 : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 \
697 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 0xDF : 0 )\
699 : ( 0xCA == ((const U8*)s)[0] ) ? \
700 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
701 : ( 0xCE == ((const U8*)s)[0] ) ? \
702 ( ( 0xAC == ((const U8*)s)[1] ) ? \
703 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
704 : ( 0xAE == ((const U8*)s)[1] ) ? \
705 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
706 : ( 0xB1 == ((const U8*)s)[1] ) ? \
707 ( ( 0xCD == ((const U8*)s)[2] ) ? \
708 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
709 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
710 : ( 0xB7 == ((const U8*)s)[1] ) ? \
711 ( ( 0xCD == ((const U8*)s)[2] ) ? \
712 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
713 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
714 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
715 : ( 0xCF == ((const U8*)s)[0] ) ? \
716 ( ( 0x81 == ((const U8*)s)[1] ) ? \
717 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
718 : ( 0x85 == ((const U8*)s)[1] ) ? \
719 ( ( 0xCC == ((const U8*)s)[2] ) ? \
720 ( ( 0x93 == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
721 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
722 : ( 0x89 == ((const U8*)s)[1] ) ? \
723 ( ( 0xCD == ((const U8*)s)[2] ) ? \
724 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
725 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
726 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )\
727 : ( 0xD5 == ((const U8*)s)[0] ) ? \
728 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
729 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x587 : 0 )\
730 : ( 0xB4 == ((const U8*)s)[1] ) ? \
731 ( ( 0xD5 == ((const U8*)s)[2] ) ? \
732 ( ( 0xA5 == ((const U8*)s)[3] ) ? 0xFB14 \
733 : ( 0xAB == ((const U8*)s)[3] ) ? 0xFB15 \
734 : ( 0xAD == ((const U8*)s)[3] ) ? 0xFB17 \
735 : ( 0xB6 == ((const U8*)s)[3] ) ? 0xFB13 : 0 ) \
737 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 0xFB16 : 0 )\
741 /*** GENERATED CODE ***/
742 #define what_MULTI_CHAR_FOLD_utf8_safe_part5_(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 : 0 ) \
773 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
775 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
776 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 0xFB00 \
777 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
778 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
779 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
780 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
781 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 : 0 ) \
786 /*** GENERATED CODE ***/
787 #define what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) \
788 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
789 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
790 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
791 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
792 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
793 : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
794 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
795 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
796 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
797 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
798 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
799 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
800 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
801 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
802 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
803 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
804 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
805 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
806 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
807 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
808 : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
809 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
810 : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
811 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
812 : ( 0xC5 == ((const U8*)s)[0] ) ? \
813 ( ( 0xBF == ((const U8*)s)[1] ) ? \
814 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
815 : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 \
816 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 0xDF : 0 )\
818 : ( 0xCA == ((const U8*)s)[0] ) ? \
819 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
820 : ( 0xCE == ((const U8*)s)[0] ) ? \
821 ( ( 0xAC == ((const U8*)s)[1] ) ? \
822 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
823 : ( 0xAE == ((const U8*)s)[1] ) ? \
824 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
825 : ( 0xB1 == ((const U8*)s)[1] ) ? \
826 ( ( 0xCD == ((const U8*)s)[2] ) ? \
827 ( ( 0x82 == ((const U8*)s)[3] ) ? \
828 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 0x1FB7 : 0x1FB6 )\
830 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
831 : ( 0xB7 == ((const U8*)s)[1] ) ? \
832 ( ( 0xCD == ((const U8*)s)[2] ) ? \
833 ( ( 0x82 == ((const U8*)s)[3] ) ? \
834 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 0x1FC7 : 0x1FC6 )\
836 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
837 : ( 0xB9 == ((const U8*)s)[1] ) ? \
838 ( ( 0xCC == ((const U8*)s)[2] ) ? \
839 ( ( 0x88 == ((const U8*)s)[3] ) ? \
840 ( ( 0xCC == ((const U8*)s)[4] ) ? \
841 ( ( 0x80 == ((const U8*)s)[5] ) ? 0x1FD2 \
842 : ( 0x81 == ((const U8*)s)[5] ) ? 0x390 : 0 ) \
843 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 0x1FD7 : 0 )\
845 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
847 : ( 0xCF == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )
850 /*** GENERATED CODE ***/
851 #define what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) \
853 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'A' ) ? \
854 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
855 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
856 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
857 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
858 : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
859 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
860 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
861 : ( ( ((const U8*)s)[0] & 0xDF ) == 'H' ) ? \
862 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
863 : ( ( ((const U8*)s)[0] & 0xDF ) == 'I' ) ? \
864 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
865 : ( ( ((const U8*)s)[0] & 0xDF ) == 'J' ) ? \
866 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
867 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
868 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
869 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 \
870 : ( ( 0xC5 == ((const U8*)s)[1] ) && ( 0xBF == ((const U8*)s)[2] ) ) ? 0xDF : 0 )\
871 : ( ( ((const U8*)s)[0] & 0xDF ) == 'T' ) ? \
872 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
873 : ( ( ((const U8*)s)[0] & 0xDF ) == 'W' ) ? \
874 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
875 : ( ( ((const U8*)s)[0] & 0xDF ) == 'Y' ) ? \
876 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
877 : ( 0xC5 == ((const U8*)s)[0] ) ? \
878 ( ( 0xBF == ((const U8*)s)[1] ) ? \
879 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'S' ) ? 0xDF \
880 : ( ( ((const U8*)s)[2] & 0xDF ) == 'T' ) ? 0xFB05 \
881 : ( ( 0xC5 == ((const U8*)s)[2] ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 0xDF : 0 )\
883 : ( 0xCA == ((const U8*)s)[0] ) ? \
884 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xDF ) == 'N' ) ) ? 0x149 : 0 )\
885 : ( 0xCE == ((const U8*)s)[0] ) ? \
886 ( ( 0xAC == ((const U8*)s)[1] ) ? \
887 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
888 : ( 0xAE == ((const U8*)s)[1] ) ? \
889 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
890 : ( 0xB1 == ((const U8*)s)[1] ) ? \
891 ( ( 0xCD == ((const U8*)s)[2] ) ? \
892 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
893 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
894 : ( 0xB7 == ((const U8*)s)[1] ) ? \
895 ( ( 0xCD == ((const U8*)s)[2] ) ? \
896 ( ( 0x82 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
897 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
898 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
899 : ( 0xCF == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )\
900 : ((e)-(s) > 3) ? what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) )
903 /*** GENERATED CODE ***/
904 #define what_MULTI_CHAR_FOLD_utf8_safe(s,e) \
905 ( ((e)-(s) > 5) ? what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) )
908 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
910 %regcharclass_multi_char_folds::multi_char_folds('l', 'a')
912 /*** GENERATED CODE ***/
913 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
915 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
916 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
917 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ? 3 : 2 )\
918 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
919 : ( ( ( ((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 )\
921 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
922 ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ) ? 2 : 0 )\
923 : ( ( ( ((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 )\
926 /*** GENERATED CODE ***/
927 #define what_MULTI_CHAR_FOLD_latin1_safe(s,e) \
929 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
930 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? \
931 ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) ? 0xFB03 \
932 : ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ? 0xFB04 : 0xFB00 ) \
933 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
934 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
935 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
936 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
937 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 : 0 ) \
940 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
941 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 0xFB00 \
942 : ( ( ((const U8*)s)[1] & 0xDF ) == 'I' ) ? 0xFB01 \
943 : ( ( ((const U8*)s)[1] & 0xDF ) == 'L' ) ? 0xFB02 : 0 ) \
944 : ( ( ((const U8*)s)[0] & 0xDF ) == 'S' ) ? \
945 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'S' ) ? 0xDF \
946 : ( ( ((const U8*)s)[1] & 0xDF ) == 'T' ) ? 0xFB05 : 0 ) \
951 THREE_CHAR_FOLD: A three-character multi-char fold
953 %regcharclass_multi_char_folds::multi_char_folds('u', '3')
955 /*** GENERATED CODE ***/
956 #define is_THREE_CHAR_FOLD_utf8_safe(s,e) \
958 ( ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
959 ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) && ( ( ( ((const U8*)s)[2] & 0xDF ) == 'I' ) || ( ( ((const U8*)s)[2] & 0xDF ) == 'L' ) ) ) ? 3 : 0 )\
960 : ( 0xCE == ((const U8*)s)[0] ) ? \
961 ( ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
962 ( ( ( ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) && ( 0xCE == ((const U8*)s)[4] ) ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
963 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCC == ((const U8*)s)[2] ) ) && ( 0x88 == ((const U8*)s)[3] ) ) ? ( ( 0xCC == ((const U8*)s)[4] ) ?\
964 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
965 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
966 : ( 0xCF == ((const U8*)s)[0] ) ? \
967 ( ( 0x85 == ((const U8*)s)[1] ) ? \
968 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x88 == ((const U8*)s)[3] || 0x93 == ((const U8*)s)[3] ) ) ? ( ( 0xCC == ((const U8*)s)[4] ) ?\
969 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x80, 0x81) ) ? 6 : 0 )\
970 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
971 : ( ( ( ( ( 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 )\
973 : ( ( ( ((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 )
976 THREE_CHAR_FOLD: A three-character multi-char fold
978 %regcharclass_multi_char_folds::multi_char_folds('l', '3')
980 /*** GENERATED CODE ***/
981 #define is_THREE_CHAR_FOLD_latin1_safe(s,e) \
982 ( ( ( ( ( ((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 )
985 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
987 %regcharclass_multi_char_folds::multi_char_folds('u', 'h')
989 /*** GENERATED CODE ***/
990 #define is_THREE_CHAR_FOLD_HEAD_utf8_safe(s,e) \
992 ( ( ( ( ((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\
993 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
994 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
995 : ( 0xC5 == ((const U8*)s)[0] ) ? \
996 ( ( 0xBF == ((const U8*)s)[1] ) ? 2 : 0 ) \
997 : ( 0xCA == ((const U8*)s)[0] ) ? \
998 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
999 : ( 0xCE == ((const U8*)s)[0] ) ? \
1000 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? 2 \
1001 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
1002 ( ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1003 : ( 0xB9 == ((const U8*)s)[1] ) ? \
1004 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x88 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1006 : ( 0xCF == ((const U8*)s)[0] ) ? \
1007 ( ( 0x81 == ((const U8*)s)[1] || 0x8E == ((const U8*)s)[1] ) ? 2 \
1008 : ( 0x85 == ((const U8*)s)[1] ) ? \
1009 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x88 == ((const U8*)s)[3] || 0x93 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1010 : ( 0x89 == ((const U8*)s)[1] ) ? \
1011 ( ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
1013 : ( 0xD5 == ((const U8*)s)[0] ) ? \
1014 ( ( 0xA5 == ((const U8*)s)[1] || 0xB4 == ((const U8*)s)[1] || 0xBE == ((const U8*)s)[1] ) ? 2 : 0 )\
1015 : ( 0xE1 == ((const U8*)s)[0] ) ? \
1016 ( ( 0xBC == ((const U8*)s)[1] ) ? \
1017 ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) ? 3 : 0 ) \
1018 : ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) ? 3 : 0 )\
1021 ( ( ( ( ((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\
1022 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
1023 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
1024 : ( 0xC5 == ((const U8*)s)[0] ) ? \
1025 ( ( 0xBF == ((const U8*)s)[1] ) ? 2 : 0 ) \
1026 : ( 0xCA == ((const U8*)s)[0] ) ? \
1027 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
1028 : ( 0xCE == ((const U8*)s)[0] ) ? \
1029 ( ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) || ( ( ((const U8*)s)[1] & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0xB7 ) ? 2 : 0 )\
1030 : ( 0xCF == ((const U8*)s)[0] ) ? \
1031 ( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x81 ) || ((const U8*)s)[1] == 0x89 || ((const U8*)s)[1] == 0x8E ) ? 2 : 0 )\
1032 : ( 0xD5 == ((const U8*)s)[0] ) ? \
1033 ( ( 0xA5 == ((const U8*)s)[1] || 0xB4 == ((const U8*)s)[1] || 0xBE == ((const U8*)s)[1] ) ? 2 : 0 )\
1034 : ( 0xE1 == ((const U8*)s)[0] ) ? \
1035 ( ( 0xBC == ((const U8*)s)[1] ) ? \
1036 ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) ? 3 : 0 ) \
1037 : ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) ? 3 : 0 )\
1040 ( ( ( ( ((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\
1041 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
1042 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
1043 : ( 0xC5 == ((const U8*)s)[0] ) ? \
1044 ( ( 0xBF == ((const U8*)s)[1] ) ? 2 : 0 ) \
1045 : ( 0xCA == ((const U8*)s)[0] ) ? \
1046 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
1047 : ( 0xCE == ((const U8*)s)[0] ) ? \
1048 ( ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) || ( ( ((const U8*)s)[1] & 0xF7 ) == 0xB1 ) || ((const U8*)s)[1] == 0xB7 ) ? 2 : 0 )\
1049 : ( 0xCF == ((const U8*)s)[0] ) ? \
1050 ( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x81 ) || ((const U8*)s)[1] == 0x89 || ((const U8*)s)[1] == 0x8E ) ? 2 : 0 )\
1051 : ( ( 0xD5 == ((const U8*)s)[0] ) && ( 0xA5 == ((const U8*)s)[1] || 0xB4 == ((const U8*)s)[1] || 0xBE == ((const U8*)s)[1] ) ) ? 2 : 0 )\
1053 ( ( ( ((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' ) )\
1057 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
1059 %regcharclass_multi_char_folds::multi_char_folds('l', 'h')
1061 /*** GENERATED CODE ***/
1062 #define is_THREE_CHAR_FOLD_HEAD_latin1_safe(s,e) \
1064 ( ( ( ( ((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\
1065 : ( ( ((const U8*)s)[0] & 0xDF ) == 'F' ) ? \
1066 ( ( ( ((const U8*)s)[1] & 0xDF ) == 'F' ) ? 2 : 1 ) \
1069 ( ( ( ((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' ) )\
1073 FOLDS_TO_MULTI: characters that fold to multi-char strings
1075 \p{_Perl_Folds_To_Multi_Char}
1077 /*** GENERATED CODE ***/
1078 #define is_FOLDS_TO_MULTI_utf8(s) \
1079 ( ( 0xC3 == ((const U8*)s)[0] ) ? \
1080 ( ( 0x9F == ((const U8*)s)[1] ) ? 2 : 0 ) \
1081 : ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ? \
1082 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1083 : ( 0xC5 == ((const U8*)s)[0] ) ? \
1084 ( ( 0x89 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1085 : ( 0xCE == ((const U8*)s)[0] ) ? \
1086 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x90 ) ? 2 : 0 ) \
1087 : ( 0xD6 == ((const U8*)s)[0] ) ? \
1088 ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1089 : ( 0xE1 == ((const U8*)s)[0] ) ? \
1090 ( ( 0xBA == ((const U8*)s)[1] ) ? \
1091 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x96, 0x9A) || 0x9E == ((const U8*)s)[2] ) ? 3 : 0 )\
1092 : ( 0xBD == ((const U8*)s)[1] ) ? \
1093 ( ( ( ((const U8*)s)[2] & 0xF9 ) == 0x90 ) ? 3 : 0 ) \
1094 : ( 0xBE == ((const U8*)s)[1] ) ? \
1095 ( ( 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 )\
1096 : ( ( 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 )\
1097 : ( ( ( 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 )
1100 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1102 \p{_Perl_Problematic_Locale_Folds}
1104 /*** GENERATED CODE ***/
1105 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
1106 ( ( ((const U8*)s)[0] <= 0x7F ) ? 1 \
1107 : ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xC2, 0xC3) ) ? \
1109 : ( 0xC4 == ((const U8*)s)[0] ) ? \
1110 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0xB0, 0xB1) ) ? 2 : 0 ) \
1111 : ( 0xC5 == ((const U8*)s)[0] ) ? \
1112 ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
1113 : ( 0xC7 == ((const U8*)s)[0] ) ? \
1114 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1115 : ( 0xCC == ((const U8*)s)[0] ) ? \
1116 ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1117 : ( 0xCE == ((const U8*)s)[0] ) ? \
1118 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
1119 : ( 0xE1 == ((const U8*)s)[0] ) ? \
1120 ( ( ( 0xBA == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x96, 0x9A) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1121 : ( 0xE2 == ((const U8*)s)[0] ) ? \
1122 ( ( ( 0x84 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xAA, 0xAB) ) ) ? 3 : 0 )\
1123 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x86) ) ) ? 3 : 0 )
1125 /*** GENERATED CODE ***/
1126 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
1127 ( cp <= 0xFF || ( 0xFF < cp && \
1128 ( inRANGE_helper_(UV, cp, 0x130, 0x131) || ( 0x131 < cp && \
1129 ( 0x149 == cp || ( 0x149 < cp && \
1130 ( 0x178 == cp || ( 0x178 < cp && \
1131 ( 0x17F == cp || ( 0x17F < cp && \
1132 ( 0x1F0 == cp || ( 0x1F0 < cp && \
1133 ( 0x307 == cp || ( 0x307 < cp && \
1134 ( 0x39C == cp || ( 0x39C < cp && \
1135 ( 0x3BC == cp || ( 0x3BC < cp && \
1136 ( inRANGE_helper_(UV, cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
1137 ( 0x1E9E == cp || ( 0x1E9E < cp && \
1138 ( inRANGE_helper_(UV, cp, 0x212A, 0x212B) || inRANGE_helper_(UV, cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1141 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1143 \p{_Perl_Problematic_Locale_Foldeds_Start}
1145 /*** GENERATED CODE ***/
1146 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
1147 ( ( ((const U8*)s)[0] <= 0x7F ) ? 1 \
1148 : ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xC2, 0xC3) ) ? \
1150 : ( 0xC4 == ((const U8*)s)[0] ) ? \
1151 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0xB0, 0xB1) ) ? 2 : 0 ) \
1152 : ( 0xC5 == ((const U8*)s)[0] ) ? \
1153 ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
1154 : ( 0xC7 == ((const U8*)s)[0] ) ? \
1155 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1156 : ( 0xCA == ((const U8*)s)[0] ) ? \
1157 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
1158 : ( 0xCE == ((const U8*)s)[0] ) ? \
1159 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
1160 : ( 0xE1 == ((const U8*)s)[0] ) ? \
1161 ( ( ( 0xBA == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x96, 0x9A) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1162 : ( 0xE2 == ((const U8*)s)[0] ) ? \
1163 ( ( ( 0x84 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0xAA, 0xAB) ) ) ? 3 : 0 )\
1164 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x80, 0x86) ) ) ? 3 : 0 )
1166 /*** GENERATED CODE ***/
1167 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
1168 ( cp <= 0xFF || ( 0xFF < cp && \
1169 ( inRANGE_helper_(UV, cp, 0x130, 0x131) || ( 0x131 < cp && \
1170 ( 0x149 == cp || ( 0x149 < cp && \
1171 ( 0x178 == cp || ( 0x178 < cp && \
1172 ( 0x17F == cp || ( 0x17F < cp && \
1173 ( 0x1F0 == cp || ( 0x1F0 < cp && \
1174 ( 0x2BC == cp || ( 0x2BC < cp && \
1175 ( 0x39C == cp || ( 0x39C < cp && \
1176 ( 0x3BC == cp || ( 0x3BC < cp && \
1177 ( inRANGE_helper_(UV, cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
1178 ( 0x1E9E == cp || ( 0x1E9E < cp && \
1179 ( inRANGE_helper_(UV, cp, 0x212A, 0x212B) || inRANGE_helper_(UV, cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1182 PATWS: pattern white space
1186 /*** GENERATED CODE ***/
1187 #define is_PATWS_safe(s,e,is_utf8) \
1188 ( ( LIKELY((e) > (s)) ) ? \
1189 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\t', '\r') || ' ' == ((const U8*)s)[0] ) ? 1\
1191 ( 0x85 == ((const U8*)s)[0] ) \
1192 : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ? \
1193 ( ( 0xC2 == ((const U8*)s)[0] ) ? \
1194 ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1195 : ( ( ( 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 )\
1200 HANGUL_ED: Hangul syllables whose first character is \xED
1204 /*** GENERATED CODE ***/
1205 #define is_HANGUL_ED_utf8_safe(s,e) \
1206 ( ( ( ( ( ((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 )
1208 #endif /* ASCII/Latin1 */
1210 #if 'A' == 193 /* EBCDIC 1047 */ \
1211 && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
1212 && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
1213 && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
1215 LNBREAK: Line Break: \R
1217 "\x0D\x0A" # CRLF - Network (Windows) line ending
1220 /*** GENERATED CODE ***/
1221 #define is_LNBREAK_safe(s,e,is_utf8) \
1223 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1224 : ( '\r' == ((const U8*)s)[0] ) ? \
1225 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
1226 : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )\
1228 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1229 : ( '\r' == ((const U8*)s)[0] ) ? \
1230 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
1233 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1236 /*** GENERATED CODE ***/
1237 #define is_LNBREAK_utf8_safe(s,e) \
1239 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1240 : ( '\r' == ((const U8*)s)[0] ) ? \
1241 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
1242 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )\
1244 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1245 : ( '\r' == ((const U8*)s)[0] ) ? \
1246 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
1249 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1252 /*** GENERATED CODE ***/
1253 #define is_LNBREAK_latin1_safe(s,e) \
1255 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1256 : ( '\r' == ((const U8*)s)[0] ) ? \
1257 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
1260 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || '\n' == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1264 HORIZWS: Horizontal Whitespace: \h \H
1268 /*** GENERATED CODE ***/
1269 #define is_HORIZWS_high(s) \
1270 ( ( 0xBC == ((const U8*)s)[0] ) ? \
1271 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1272 : ( 0xCA == ((const U8*)s)[0] ) ? \
1273 ( ( 0x41 == ((const U8*)s)[1] ) ? \
1274 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
1275 : ( 0x42 == ((const U8*)s)[1] ) ? \
1276 ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1277 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1278 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1280 /*** GENERATED CODE ***/
1281 #define is_HORIZWS_cp_high(cp) \
1282 ( 0x1680 == cp || ( 0x1680 < cp && \
1283 ( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
1284 ( 0x202F == cp || ( 0x202F < cp && \
1285 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
1288 VERTWS: Vertical Whitespace: \v \V
1292 /*** GENERATED CODE ***/
1293 #define is_VERTWS_high(s) \
1294 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )
1296 /*** GENERATED CODE ***/
1297 #define is_VERTWS_cp_high(cp) \
1298 ( inRANGE_helper_(UV, cp, 0x2028, 0x2029) )
1301 XDIGIT: Hexadecimal digits
1305 /*** GENERATED CODE ***/
1306 #define is_XDIGIT_high(s) \
1307 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x73 == ((const U8*)s)[1] ) ) ? ( ( 0x67 == ((const U8*)s)[2] ) ?\
1308 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x68) ) ? 4 : 0 )\
1309 : ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x68, 0x69) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x42, 0x47) ) ) ? 4 : 0 ) : 0 )
1311 /*** GENERATED CODE ***/
1312 #define is_XDIGIT_cp_high(cp) \
1313 ( inRANGE_helper_(UV, cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp && \
1314 ( inRANGE_helper_(UV, cp, 0xFF21, 0xFF26) || inRANGE_helper_(UV, cp, 0xFF41, 0xFF46) ) ) )
1317 XPERLSPACE: \p{XPerlSpace}
1321 /*** GENERATED CODE ***/
1322 #define is_XPERLSPACE_high(s) \
1323 ( ( 0xBC == ((const U8*)s)[0] ) ? \
1324 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1325 : ( 0xCA == ((const U8*)s)[0] ) ? \
1326 ( ( 0x41 == ((const U8*)s)[1] ) ? \
1327 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
1328 : ( 0x42 == ((const U8*)s)[1] ) ? \
1329 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1330 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1331 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1333 /*** GENERATED CODE ***/
1334 #define is_XPERLSPACE_cp_high(cp) \
1335 ( 0x1680 == cp || ( 0x1680 < cp && \
1336 ( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
1337 ( inRANGE_helper_(UV, cp, 0x2028, 0x2029) || ( 0x2029 < cp && \
1338 ( 0x202F == cp || ( 0x202F < cp && \
1339 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) )
1342 NONCHAR: Non character code points
1346 /*** GENERATED CODE ***/
1347 #define is_NONCHAR_utf8_safe(s,e) \
1348 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
1349 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1350 ( ( 0x55 == ((const U8*)s)[2] ) ? \
1351 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x73) ) ? 4 : 0 )\
1352 : ( 0x56 == ((const U8*)s)[2] ) ? \
1353 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x56) ) ? 4 : 0 )\
1354 : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ) ? 4 : 0 )\
1356 : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
1357 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ) ? 4 : 0 )\
1358 : ( 0xED == ((const U8*)s)[0] ) ? \
1359 ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x62 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x71 ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x72, 0x73) ) ) ? 5 : 0 )\
1360 : ( ( ( ( ( 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 )
1363 SURROGATE: Surrogate code points
1367 /*** GENERATED CODE ***/
1368 #define is_SURROGATE_utf8_safe(s,e) \
1369 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x65, 0x66) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x73) ) ) ? 4 : 0 )
1372 QUOTEMETA: Meta-characters that \Q should quote
1376 /*** GENERATED CODE ***/
1377 #define is_QUOTEMETA_high_part0_(s) \
1378 ( ( 0x63 == ((const U8*)s)[1] ) ? \
1379 ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1380 : ( ( 0x71 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x63, 0x64) ) ) ? 3 : 0 )
1383 /*** GENERATED CODE ***/
1384 #define is_QUOTEMETA_high_part1_(s) \
1385 ( ( 0xBE == ((const U8*)s)[0] ) ? \
1386 ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x52, 0x55) ) ) ? 3 : 0 )\
1387 : ( 0xCA == ((const U8*)s)[0] ) ? \
1388 ( ( 0x41 == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x54, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x73) ) ?\
1389 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
1390 : ( 0x42 == ((const U8*)s)[1] ) ? \
1391 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
1392 : ( 0x43 == ((const U8*)s)[1] ) ? \
1393 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x42, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x62 == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x64, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
1394 : ( 0x44 == ((const U8*)s)[1] ) ? \
1395 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x56) ) ? 3 : 0 )\
1396 : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x57, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) ? 3 : 0 )\
1397 : ( 0xCB == ((const U8*)s)[0] ) ? \
1398 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x43) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x49, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x69) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x71, 0x73) ) ?\
1399 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
1400 : ( 0x6A == ((const U8*)s)[1] ) ? \
1401 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x64) ) ? 3 : 0 )\
1402 : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x63, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) ? 3 : 0 )\
1403 : ( 0xCC == ((const U8*)s)[0] ) ? \
1404 ( ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x73) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) ? 3 : 0 )\
1405 : ( 0xCD == ((const U8*)s)[0] ) ? \
1406 ( ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x59) || 0x62 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ) ? 3 : 0 )\
1407 : ( 0xCE == ((const U8*)s)[0] ) ? \
1408 ( ( 0x41 == ((const U8*)s)[1] ) ? \
1409 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
1410 : ( 0x42 == ((const U8*)s)[1] ) ? \
1411 ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
1412 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1413 : ( 0xDD == ((const U8*)s)[0] ) ? \
1414 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1415 ( ( 0x4A == ((const U8*)s)[2] ) ? \
1416 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x72, 0x73) ) ? 4 : 0 )\
1417 : ( 0x57 == ((const U8*)s)[2] ) ? \
1418 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x56) ) ? 4 : 0 )\
1419 : ( 0x59 == ((const U8*)s)[2] ) ? \
1420 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x46, 0x47) ) ? 4 : 0 )\
1421 : ( 0x66 == ((const U8*)s)[2] ) ? \
1422 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1423 : ( 0x71 == ((const U8*)s)[2] ) ? \
1424 ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1425 : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x67) ) ) ? 4 : 0 )\
1427 : ( 0xDF == ((const U8*)s)[0] ) ? \
1428 ( ( 0x56 == ((const U8*)s)[1] ) ? \
1429 ( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x44) ) ) ? 4 : 0 )\
1430 : ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x69) ) ) ? 4 : 0 )\
1431 : ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x73) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x70, 0x73) ) ) ? 5 : 0 )
1434 /*** GENERATED CODE ***/
1435 #define is_QUOTEMETA_high(s) \
1436 ( ( 0xB1 == ((const U8*)s)[0] ) ? \
1437 ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1438 : ( 0xB8 == ((const U8*)s)[0] ) ? \
1439 ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1440 : ( 0xBB == ((const U8*)s)[0] ) ? \
1441 ( ( 0x51 == ((const U8*)s)[1] ) ? \
1442 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1443 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1444 : ( 0xBC == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0_(s) : is_QUOTEMETA_high_part1_(s) )
1447 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1449 %regcharclass_multi_char_folds::multi_char_folds('u', 'a')
1451 /*** GENERATED CODE ***/
1452 #define is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
1453 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1456 /*** GENERATED CODE ***/
1457 #define is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
1458 ( ( 0x8F == ((const U8*)s)[0] ) ? \
1459 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1460 ( ( 0x8F == ((const U8*)s)[2] ) ? \
1461 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1462 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
1464 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
1465 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1466 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
1467 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1468 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1469 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
1470 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
1471 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1472 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
1473 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1474 : ( 0xAB == ((const U8*)s)[0] ) ? \
1475 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
1476 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1477 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1478 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1479 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1480 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1481 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1482 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1484 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1485 : ( 0x68 == ((const U8*)s)[1] ) ? \
1486 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1487 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1488 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1489 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
1490 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1492 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1494 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1495 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1496 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1497 : ( 0x46 == ((const U8*)s)[1] ) ? \
1498 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1499 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1500 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1501 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
1502 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1503 : ( 0x62 == ((const U8*)s)[3] ) ? \
1504 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1505 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 4 )\
1506 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1508 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1509 : ( 0x4A == ((const U8*)s)[1] ) ? \
1510 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1511 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1512 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1514 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1515 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1516 : ( 0xB8 == ((const U8*)s)[0] ) ? \
1517 ( ( 0x52 == ((const U8*)s)[1] ) ? \
1518 ( ( 0x46 == ((const U8*)s)[2] ) ? \
1519 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1520 : ( 0x63 == ((const U8*)s)[2] ) ? \
1521 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x46 == ((const U8*)s)[5] || 0x52 == ((const U8*)s)[5] || 0x54 == ((const U8*)s)[5] || 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1522 : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1524 : ( 0xBF == ((const U8*)s)[0] ) ? \
1525 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
1526 ( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1527 : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1531 /*** GENERATED CODE ***/
1532 #define is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
1533 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
1534 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1535 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1536 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1537 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
1538 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
1539 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
1540 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1541 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
1542 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1543 : ( 0x8F == ((const U8*)s)[0] ) ? \
1544 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1545 ( ( 0x8F == ((const U8*)s)[2] ) ? \
1546 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1547 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
1549 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
1550 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1551 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
1552 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1553 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1554 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
1555 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
1556 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1557 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
1558 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1559 : ( 0xAB == ((const U8*)s)[0] ) ? \
1560 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
1561 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1562 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1563 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1564 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1565 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1566 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1567 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1568 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1569 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1570 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1571 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1572 : ( 0x46 == ((const U8*)s)[1] ) ? \
1573 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1574 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1575 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1576 : ( 0x4A == ((const U8*)s)[1] ) ? \
1577 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1578 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1579 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1580 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1581 : ( 0xBF == ((const U8*)s)[0] ) ? \
1582 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
1583 ( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1584 : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1588 /*** GENERATED CODE ***/
1589 #define is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
1591 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
1592 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1593 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1594 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1595 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
1596 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
1597 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
1598 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1599 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
1600 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1601 : ( 0x8F == ((const U8*)s)[0] ) ? \
1602 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1603 ( ( 0x8F == ((const U8*)s)[2] ) ? \
1604 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1605 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
1607 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
1608 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1609 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
1610 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1611 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1612 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
1613 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
1614 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1615 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
1616 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1617 : ( 0xAB == ((const U8*)s)[0] ) ? \
1618 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
1619 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1620 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1621 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1622 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1623 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1624 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1625 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1626 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1627 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1628 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1629 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1630 : ( 0x46 == ((const U8*)s)[1] ) ? \
1631 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1632 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1633 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1634 : ( 0x4A == ((const U8*)s)[1] ) ? \
1635 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1636 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1637 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1638 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1641 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
1642 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1643 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1644 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1645 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
1646 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
1647 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
1648 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1649 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
1650 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1651 : ( 0x8F == ((const U8*)s)[0] ) ? \
1652 ( ( ( 0x73 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ) ? 3 : 0 )\
1653 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
1654 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1655 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
1656 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1657 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1658 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
1659 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
1660 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1661 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
1662 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1663 : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
1665 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1666 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
1667 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
1671 /*** GENERATED CODE ***/
1672 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
1674 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
1675 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1676 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1677 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1678 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
1679 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
1680 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
1681 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1682 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )\
1683 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )
1685 /*** GENERATED CODE ***/
1686 #define what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
1687 ( ( 0x52 == ((const U8*)s)[1] ) ? \
1688 ( ( 0x46 == ((const U8*)s)[2] ) ? \
1689 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x587 : 0 )\
1690 : ( 0x63 == ((const U8*)s)[2] ) ? \
1691 ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) ? ( ( 0x46 == ((const U8*)s)[5] ) ? 0xFB14\
1692 : ( 0x52 == ((const U8*)s)[5] ) ? 0xFB15 \
1693 : ( 0x54 == ((const U8*)s)[5] ) ? 0xFB17 \
1694 : ( 0x65 == ((const U8*)s)[5] ) ? 0xFB13 : 0 ) : 0 )\
1695 : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 0xFB16 : 0 )\
1699 /*** GENERATED CODE ***/
1700 #define what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
1701 ( ( 0xBF == ((const U8*)s)[0] ) ? \
1702 ( ( 0x67 == ((const U8*)s)[1] ) ? \
1703 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1704 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
1705 : ( 0x42 == ((const U8*)s)[2] ) ? \
1706 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
1707 : ( 0x43 == ((const U8*)s)[2] ) ? \
1708 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
1709 : ( 0x44 == ((const U8*)s)[2] ) ? \
1710 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
1711 : ( 0x45 == ((const U8*)s)[2] ) ? \
1712 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
1713 : ( 0x46 == ((const U8*)s)[2] ) ? \
1714 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
1715 : ( 0x47 == ((const U8*)s)[2] ) ? \
1716 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
1717 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
1718 : ( 0x68 == ((const U8*)s)[1] ) ? \
1719 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1720 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
1721 : ( 0x42 == ((const U8*)s)[2] ) ? \
1722 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
1723 : ( 0x43 == ((const U8*)s)[2] ) ? \
1724 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
1725 : ( 0x44 == ((const U8*)s)[2] ) ? \
1726 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
1727 : ( 0x45 == ((const U8*)s)[2] ) ? \
1728 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
1729 : ( 0x46 == ((const U8*)s)[2] ) ? \
1730 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
1731 : ( 0x47 == ((const U8*)s)[2] ) ? \
1732 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
1733 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
1734 : ( 0x6A == ((const U8*)s)[1] ) ? \
1735 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1736 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
1737 : ( 0x42 == ((const U8*)s)[2] ) ? \
1738 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
1739 : ( 0x43 == ((const U8*)s)[2] ) ? \
1740 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
1741 : ( 0x44 == ((const U8*)s)[2] ) ? \
1742 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
1743 : ( 0x45 == ((const U8*)s)[2] ) ? \
1744 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
1745 : ( 0x46 == ((const U8*)s)[2] ) ? \
1746 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
1747 : ( 0x47 == ((const U8*)s)[2] ) ? \
1748 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
1749 : ( 0x48 == ((const U8*)s)[2] ) ? \
1750 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
1751 : ( 0x57 == ((const U8*)s)[2] ) ? \
1752 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
1753 : ( 0x63 == ((const U8*)s)[2] ) ? \
1754 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
1755 : ( ( ( 0x70 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
1760 /*** GENERATED CODE ***/
1761 #define what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
1762 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1763 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
1764 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
1765 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
1766 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 )
1769 /*** GENERATED CODE ***/
1770 #define what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
1771 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
1772 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
1773 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
1774 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
1775 : ( 0x8F == ((const U8*)s)[0] ) ? \
1776 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1777 ( ( 0x8F == ((const U8*)s)[2] ) ? \
1778 ( ( 0x73 == ((const U8*)s)[3] ) ? 0x59 : 0 ) \
1779 : ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
1780 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
1782 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
1783 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
1784 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
1785 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1786 ( ( 0x73 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
1787 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
1788 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
1789 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
1790 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
1791 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
1792 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
1793 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
1794 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
1795 : ( 0xAB == ((const U8*)s)[0] ) ? \
1796 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
1797 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1798 ( ( 0x53 == ((const U8*)s)[1] ) ? \
1799 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
1800 : ( 0x55 == ((const U8*)s)[1] ) ? \
1801 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
1802 : ( 0x58 == ((const U8*)s)[1] ) ? \
1803 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1804 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1805 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 0x1FB7 : 0x1FB6 )\
1807 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
1808 : ( 0x66 == ((const U8*)s)[1] ) ? \
1809 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1810 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1811 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 0x1FC7 : 0x1FC6 )\
1813 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
1814 : ( 0x68 == ((const U8*)s)[1] ) ? \
1815 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1816 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1817 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1818 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1FD2 \
1819 : ( 0x42 == ((const U8*)s)[5] ) ? 0x390 : 0 ) \
1820 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1FD7 : 0 )\
1822 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
1824 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1825 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1826 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
1827 : ( 0x46 == ((const U8*)s)[1] ) ? \
1828 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1829 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1830 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1831 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1FE2 \
1832 : ( 0x42 == ((const U8*)s)[5] ) ? 0x3B0 : 0 ) \
1833 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1FE7 : 0 )\
1834 : ( 0x62 == ((const U8*)s)[3] ) ? \
1835 ( ( 0xAF == ((const U8*)s)[4] ) ? \
1836 ( ( 0x41 == ((const U8*)s)[5] ) ? 0x1F52 \
1837 : ( 0x42 == ((const U8*)s)[5] ) ? 0x1F54 : 0x1F50 ) \
1838 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 0x1F56 : 0x1F50 )\
1840 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
1841 : ( 0x4A == ((const U8*)s)[1] ) ? \
1842 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1843 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1844 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 0x1FF7 : 0x1FF6 )\
1846 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
1847 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )\
1848 : ( 0xB8 == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) )
1851 /*** GENERATED CODE ***/
1852 #define what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) \
1853 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1854 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
1855 : ( 0x46 == ((const U8*)s)[1] ) ? \
1856 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1857 ( ( 0x62 == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
1858 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
1859 : ( 0x4A == ((const U8*)s)[1] ) ? \
1860 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1861 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
1862 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
1863 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )
1866 /*** GENERATED CODE ***/
1867 #define what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) \
1868 ( ( 0xBF == ((const U8*)s)[0] ) ? \
1869 ( ( 0x67 == ((const U8*)s)[1] ) ? \
1870 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1871 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F80 : 0 )\
1872 : ( 0x42 == ((const U8*)s)[2] ) ? \
1873 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F81 : 0 )\
1874 : ( 0x43 == ((const U8*)s)[2] ) ? \
1875 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F82 : 0 )\
1876 : ( 0x44 == ((const U8*)s)[2] ) ? \
1877 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F83 : 0 )\
1878 : ( 0x45 == ((const U8*)s)[2] ) ? \
1879 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F84 : 0 )\
1880 : ( 0x46 == ((const U8*)s)[2] ) ? \
1881 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F85 : 0 )\
1882 : ( 0x47 == ((const U8*)s)[2] ) ? \
1883 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F86 : 0 )\
1884 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F87 : 0 )\
1885 : ( 0x68 == ((const U8*)s)[1] ) ? \
1886 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1887 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F90 : 0 )\
1888 : ( 0x42 == ((const U8*)s)[2] ) ? \
1889 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F91 : 0 )\
1890 : ( 0x43 == ((const U8*)s)[2] ) ? \
1891 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F92 : 0 )\
1892 : ( 0x44 == ((const U8*)s)[2] ) ? \
1893 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F93 : 0 )\
1894 : ( 0x45 == ((const U8*)s)[2] ) ? \
1895 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F94 : 0 )\
1896 : ( 0x46 == ((const U8*)s)[2] ) ? \
1897 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F95 : 0 )\
1898 : ( 0x47 == ((const U8*)s)[2] ) ? \
1899 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F96 : 0 )\
1900 : ( ( ( 0x48 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1F97 : 0 )\
1901 : ( 0x6A == ((const U8*)s)[1] ) ? \
1902 ( ( 0x41 == ((const U8*)s)[2] ) ? \
1903 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA0 : 0 )\
1904 : ( 0x42 == ((const U8*)s)[2] ) ? \
1905 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA1 : 0 )\
1906 : ( 0x43 == ((const U8*)s)[2] ) ? \
1907 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA2 : 0 )\
1908 : ( 0x44 == ((const U8*)s)[2] ) ? \
1909 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA3 : 0 )\
1910 : ( 0x45 == ((const U8*)s)[2] ) ? \
1911 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA4 : 0 )\
1912 : ( 0x46 == ((const U8*)s)[2] ) ? \
1913 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA5 : 0 )\
1914 : ( 0x47 == ((const U8*)s)[2] ) ? \
1915 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA6 : 0 )\
1916 : ( 0x48 == ((const U8*)s)[2] ) ? \
1917 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FA7 : 0 )\
1918 : ( 0x57 == ((const U8*)s)[2] ) ? \
1919 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FB2 : 0 )\
1920 : ( 0x63 == ((const U8*)s)[2] ) ? \
1921 ( ( ( 0xB4 == ((const U8*)s)[3] ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FC2 : 0 )\
1922 : ( ( ( 0x70 == ((const U8*)s)[2] ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 0x1FF2 : 0 )\
1927 /*** GENERATED CODE ***/
1928 #define what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) \
1929 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
1930 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
1931 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1932 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1933 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
1934 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
1935 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
1936 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
1937 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
1938 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
1939 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
1940 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
1941 : ( 0x8F == ((const U8*)s)[0] ) ? \
1942 ( ( 0x73 == ((const U8*)s)[1] ) ? \
1943 ( ( 0x8F == ((const U8*)s)[2] ) ? \
1944 ( ( 0x73 == ((const U8*)s)[3] ) ? 0x59 : 0 ) \
1945 : ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
1946 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
1948 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
1949 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
1950 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
1951 ( ( 0x8F == ((const U8*)s)[1] ) ? \
1952 ( ( 0x73 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
1953 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
1954 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
1955 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
1956 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
1957 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
1958 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
1959 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
1960 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
1961 : ( 0xAB == ((const U8*)s)[0] ) ? \
1962 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
1963 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1964 ( ( 0x53 == ((const U8*)s)[1] ) ? \
1965 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
1966 : ( 0x55 == ((const U8*)s)[1] ) ? \
1967 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
1968 : ( 0x58 == ((const U8*)s)[1] ) ? \
1969 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1970 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
1971 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
1972 : ( 0x66 == ((const U8*)s)[1] ) ? \
1973 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1974 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
1975 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
1976 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
1977 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1978 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1979 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 0x1FE4 : 0 )\
1980 : ( 0x46 == ((const U8*)s)[1] ) ? \
1981 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1982 ( ( 0x62 == ((const U8*)s)[3] ) ? 0x1F50 : 0 ) \
1983 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FE6 : 0 )\
1984 : ( 0x4A == ((const U8*)s)[1] ) ? \
1985 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1986 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FF6 : 0 ) \
1987 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF3 : 0 )\
1988 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FF4 : 0 )\
1992 /*** GENERATED CODE ***/
1993 #define what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) \
1995 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
1996 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
1997 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
1998 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
1999 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
2000 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
2001 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2002 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2003 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
2004 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
2005 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
2006 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
2007 : ( 0x8F == ((const U8*)s)[0] ) ? \
2008 ( ( 0x73 == ((const U8*)s)[1] ) ? \
2009 ( ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
2010 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2012 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
2013 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
2014 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2015 ( ( 0x8F == ((const U8*)s)[1] ) ? \
2016 ( ( 0x73 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
2017 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2018 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2019 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
2020 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
2021 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
2022 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
2023 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
2024 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
2025 : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
2027 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2028 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 0xFB00 \
2029 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2030 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2031 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2032 ( ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2033 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2038 /*** GENERATED CODE ***/
2039 #define what_MULTI_CHAR_FOLD_utf8_safe(s,e) \
2041 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
2042 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
2043 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? what_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) )\
2045 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
2046 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 0x1E9A : 0 )\
2047 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2048 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2049 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
2050 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
2051 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2052 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2053 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
2054 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 0x1E96 : 0 )\
2055 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
2056 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 0x130 : 0 )\
2057 : ( 0x8F == ((const U8*)s)[0] ) ? \
2058 ( ( 0x73 == ((const U8*)s)[1] ) ? \
2059 ( ( 0x8F == ((const U8*)s)[2] ) ? \
2060 ( ( 0x73 == ((const U8*)s)[3] ) ? 0x59 : 0 ) \
2061 : ( ( ((const U8*)s)[2] & 0xBF ) == 's' ) ? 0x59 \
2062 : ( ( ((const U8*)s)[2] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2064 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
2065 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 0x1F0 : 0 )\
2066 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2067 ( ( 0x8F == ((const U8*)s)[1] ) ? \
2068 ( ( 0x73 == ((const U8*)s)[2] ) ? 0x59 : 0 ) \
2069 : ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2070 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2071 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
2072 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 0x1E97 : 0 )\
2073 : ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) ? \
2074 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E98 : 0 )\
2075 : ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ? \
2076 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 0x1E99 : 0 )\
2077 : ( 0xAB == ((const U8*)s)[0] ) ? \
2078 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 0x149 : 0 )\
2079 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2080 ( ( 0x53 == ((const U8*)s)[1] ) ? \
2081 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB4 : 0 )\
2082 : ( 0x55 == ((const U8*)s)[1] ) ? \
2083 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC4 : 0 )\
2084 : ( 0x58 == ((const U8*)s)[1] ) ? \
2085 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
2086 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FB6 : 0 ) \
2087 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FB3 : 0 )\
2088 : ( 0x66 == ((const U8*)s)[1] ) ? \
2089 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
2090 ( ( 0x43 == ((const U8*)s)[3] ) ? 0x1FC6 : 0 ) \
2091 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 0x1FC3 : 0 )\
2092 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 0x1FD6 : 0 )\
2093 : ( 0xB5 == ((const U8*)s)[0] ) ? what_MULTI_CHAR_FOLD_utf8_safe_part4_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part5_(s,e) )\
2094 : ((e)-(s) > 3) ? what_MULTI_CHAR_FOLD_utf8_safe_part6_(s,e) : what_MULTI_CHAR_FOLD_utf8_safe_part7_(s,e) )
2097 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
2099 %regcharclass_multi_char_folds::multi_char_folds('l', 'a')
2101 /*** GENERATED CODE ***/
2102 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
2104 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2105 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2106 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
2107 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
2108 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
2110 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2111 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
2112 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) && ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ) ? 2 : 0 )\
2115 /*** GENERATED CODE ***/
2116 #define what_MULTI_CHAR_FOLD_latin1_safe(s,e) \
2118 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2119 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2120 ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) ? 0xFB03 \
2121 : ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ? 0xFB04 : 0xFB00 ) \
2122 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2123 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2124 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2125 ( ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2126 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2129 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2130 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 0xFB00 \
2131 : ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) ? 0xFB01 \
2132 : ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ? 0xFB02 : 0 ) \
2133 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2134 ( ( ( ((const U8*)s)[1] & 0xBF ) == 's' ) ? 0x59 \
2135 : ( ( ((const U8*)s)[1] & 0xBF ) == 't' ) ? 0xFB05 : 0 ) \
2140 THREE_CHAR_FOLD: A three-character multi-char fold
2142 %regcharclass_multi_char_folds::multi_char_folds('u', '3')
2144 /*** GENERATED CODE ***/
2145 #define is_THREE_CHAR_FOLD_utf8_safe(s,e) \
2147 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2148 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) && ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ) ? 3 : 0 )\
2149 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2150 ( ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
2151 ( ( ( ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) && ( 0xB4 == ((const U8*)s)[4] ) ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2152 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x49 == ((const U8*)s)[3] ) ) ? ( ( 0xAF == ((const U8*)s)[4] ) ?\
2153 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
2154 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
2155 : ( 0xB5 == ((const U8*)s)[0] ) ? \
2156 ( ( 0x46 == ((const U8*)s)[1] ) ? \
2157 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] || 0x62 == ((const U8*)s)[3] ) ) ? ( ( 0xAF == ((const U8*)s)[4] ) ?\
2158 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
2159 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 ) : 0 )\
2160 : ( ( ( ( ( 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 )\
2162 : ( ( ( ((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 )
2165 THREE_CHAR_FOLD: A three-character multi-char fold
2167 %regcharclass_multi_char_folds::multi_char_folds('l', '3')
2169 /*** GENERATED CODE ***/
2170 #define is_THREE_CHAR_FOLD_latin1_safe(s,e) \
2171 ( ( ( ( ( ((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 )
2174 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
2176 %regcharclass_multi_char_folds::multi_char_folds('u', 'h')
2178 /*** GENERATED CODE ***/
2179 #define is_THREE_CHAR_FOLD_HEAD_utf8_safe(s,e) \
2181 ( ( ( ( ((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\
2182 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2183 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
2184 : ( 0x8F == ((const U8*)s)[0] ) ? \
2185 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2186 : ( 0xAB == ((const U8*)s)[0] ) ? \
2187 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2188 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2189 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? 2 \
2190 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
2191 ( ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
2192 : ( 0x68 == ((const U8*)s)[1] ) ? \
2193 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
2195 : ( 0xB5 == ((const U8*)s)[0] ) ? \
2196 ( ( 0x42 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? 2 \
2197 : ( 0x46 == ((const U8*)s)[1] ) ? \
2198 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x49 == ((const U8*)s)[3] || 0x62 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
2199 : ( 0x4A == ((const U8*)s)[1] ) ? \
2200 ( ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 2 )\
2202 : ( 0xB8 == ((const U8*)s)[0] ) ? \
2203 ( ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x46 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2204 : ( 0xBF == ((const U8*)s)[0] ) ? \
2205 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
2206 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) ? 3 : 0 )\
2207 : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2210 ( ( ( ( ((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\
2211 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2212 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
2213 : ( 0x8F == ((const U8*)s)[0] ) ? \
2214 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2215 : ( 0xAB == ((const U8*)s)[0] ) ? \
2216 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2217 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2218 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] || 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? 2 : 0 )\
2219 : ( 0xB5 == ((const U8*)s)[0] ) ? \
2220 ( ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ? 2 : 0 )\
2221 : ( 0xB8 == ((const U8*)s)[0] ) ? \
2222 ( ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x46 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2223 : ( 0xBF == ((const U8*)s)[0] ) ? \
2224 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x67, 0x68) ) ? \
2225 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) ? 3 : 0 )\
2226 : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2229 ( ( ( ( ((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\
2230 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2231 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
2232 : ( 0x8F == ((const U8*)s)[0] ) ? \
2233 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2234 : ( 0xAB == ((const U8*)s)[0] ) ? \
2235 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2236 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2237 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] || 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ? 2 : 0 )\
2238 : ( ( 0xB5 == ((const U8*)s)[0] ) && ( ( ( ((const U8*)s)[1] & 0xFB ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x55 ) ) ? 2 : 0 )\
2240 ( ( ( ((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' ) )\
2244 THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
2246 %regcharclass_multi_char_folds::multi_char_folds('l', 'h')
2248 /*** GENERATED CODE ***/
2249 #define is_THREE_CHAR_FOLD_HEAD_latin1_safe(s,e) \
2251 ( ( ( ( ((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\
2252 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2253 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? 2 : 1 ) \
2256 ( ( ( ((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' ) )\
2260 FOLDS_TO_MULTI: characters that fold to multi-char strings
2262 \p{_Perl_Folds_To_Multi_Char}
2264 /*** GENERATED CODE ***/
2265 #define is_FOLDS_TO_MULTI_utf8(s) \
2266 ( ( 0x8A == ((const U8*)s)[0] ) ? \
2267 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2268 : ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 0xB3, 0xB4) ) ?\
2269 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2270 : ( 0x8E == ((const U8*)s)[0] ) ? \
2271 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2272 : ( 0xB8 == ((const U8*)s)[0] ) ? \
2273 ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2274 : ( 0xBF == ((const U8*)s)[0] ) ? \
2275 ( ( 0x63 == ((const U8*)s)[1] ) ? \
2276 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x69) || 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )\
2277 : ( 0x69 == ((const U8*)s)[1] ) ? \
2278 ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x65 == ((const U8*)s)[2] ) ? 3 : 0 )\
2279 : ( 0x70 == ((const U8*)s)[1] ) ? \
2280 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x73) ) ? 3 : 0 )\
2281 : ( 0x71 == ((const U8*)s)[1] ) ? \
2282 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x56) || 0x59 == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x63) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x66) || 0x70 == ((const U8*)s)[2] ) ? 3 : 0 )\
2283 : ( 0x72 == ((const U8*)s)[1] ) ? \
2284 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x43, 0x45) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x47, 0x48) || 0x53 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x66) ) ? 3 : 0 )\
2285 : ( ( 0x73 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x43, 0x45) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x47, 0x48) || 0x59 == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x63) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x66) || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2286 : ( ( ( ( 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 )
2289 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
2291 \p{_Perl_Problematic_Locale_Folds}
2293 /*** GENERATED CODE ***/
2294 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
2295 ( ( ( ((const U8*)s)[0] <= ' ' ) || inRANGE_helper_(U8, ((const U8*)s)[0], '.', '&') || inRANGE_helper_(U8, ((const U8*)s)[0], '!', '/') || inRANGE_helper_(U8, ((const U8*)s)[0], ',', '?') || inRANGE_helper_(U8, ((const U8*)s)[0], '`', '"') || inRANGE_helper_(U8, ((const U8*)s)[0], 'a', 'i') || inRANGE_helper_(U8, ((const U8*)s)[0], 'j', 'r') || inRANGE_helper_(U8, ((const U8*)s)[0], '~', 'z') || '[' == ((const U8*)s)[0] || ']' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], '{', 'I') || inRANGE_helper_(U8, ((const U8*)s)[0], '}', 'R') || '\\' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 'S', 'Z') || inRANGE_helper_(U8, ((const U8*)s)[0], '0', '9') || 0xFF == ((const U8*)s)[0] ) ? 1\
2296 : ( 0x80 == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 0x8A, 0x8B) ) ?\
2297 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x73) ) ? 2 : 0 )\
2298 : ( 0x8D == ((const U8*)s)[0] ) ? \
2299 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x58) ) ? 2 : 0 ) \
2300 : ( 0x8E == ((const U8*)s)[0] ) ? \
2301 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2302 : ( 0x8F == ((const U8*)s)[0] ) ? \
2303 ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2304 : ( 0x9C == ((const U8*)s)[0] ) ? \
2305 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2306 : ( 0xAF == ((const U8*)s)[0] ) ? \
2307 ( ( 0x48 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2308 : ( inRANGE_helper_(U8, ((const U8*)s)[0], 0xB3, 0xB4) ) ? \
2309 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2310 : ( 0xBF == ((const U8*)s)[0] ) ? \
2311 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x69) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2312 : ( 0xCA == ((const U8*)s)[0] ) ? \
2313 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x52) ) ) ? 3 : 0 )\
2314 : ( ( ( ( 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 )
2316 /*** GENERATED CODE ***/
2317 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
2318 ( cp <= 0xFF || ( 0xFF < cp && \
2319 ( inRANGE_helper_(UV, cp, 0x130, 0x131) || ( 0x131 < cp && \
2320 ( 0x149 == cp || ( 0x149 < cp && \
2321 ( 0x178 == cp || ( 0x178 < cp && \
2322 ( 0x17F == cp || ( 0x17F < cp && \
2323 ( 0x1F0 == cp || ( 0x1F0 < cp && \
2324 ( 0x307 == cp || ( 0x307 < cp && \
2325 ( 0x39C == cp || ( 0x39C < cp && \
2326 ( 0x3BC == cp || ( 0x3BC < cp && \
2327 ( inRANGE_helper_(UV, cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
2328 ( 0x1E9E == cp || ( 0x1E9E < cp && \
2329 ( inRANGE_helper_(UV, cp, 0x212A, 0x212B) || inRANGE_helper_(UV, cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
2332 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
2334 \p{_Perl_Problematic_Locale_Foldeds_Start}
2336 /*** GENERATED CODE ***/
2337 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
2338 ( ( ( ((const U8*)s)[0] <= ' ' ) || inRANGE_helper_(U8, ((const U8*)s)[0], '.', '&') || inRANGE_helper_(U8, ((const U8*)s)[0], '!', '/') || inRANGE_helper_(U8, ((const U8*)s)[0], ',', '?') || inRANGE_helper_(U8, ((const U8*)s)[0], '`', '"') || inRANGE_helper_(U8, ((const U8*)s)[0], 'a', 'i') || inRANGE_helper_(U8, ((const U8*)s)[0], 'j', 'r') || inRANGE_helper_(U8, ((const U8*)s)[0], '~', 'z') || '[' == ((const U8*)s)[0] || ']' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], '{', 'I') || inRANGE_helper_(U8, ((const U8*)s)[0], '}', 'R') || '\\' == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 'S', 'Z') || inRANGE_helper_(U8, ((const U8*)s)[0], '0', '9') || 0xFF == ((const U8*)s)[0] ) ? 1\
2339 : ( 0x80 == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 0x8A, 0x8B) ) ?\
2340 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x73) ) ? 2 : 0 )\
2341 : ( 0x8D == ((const U8*)s)[0] ) ? \
2342 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x58) ) ? 2 : 0 ) \
2343 : ( 0x8E == ((const U8*)s)[0] ) ? \
2344 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
2345 : ( 0x8F == ((const U8*)s)[0] ) ? \
2346 ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2347 : ( 0x9C == ((const U8*)s)[0] ) ? \
2348 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2349 : ( 0xAB == ((const U8*)s)[0] || inRANGE_helper_(U8, ((const U8*)s)[0], 0xB3, 0xB4) ) ?\
2350 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2351 : ( 0xBF == ((const U8*)s)[0] ) ? \
2352 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x65, 0x69) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2353 : ( 0xCA == ((const U8*)s)[0] ) ? \
2354 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x52) ) ) ? 3 : 0 )\
2355 : ( ( ( ( 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 )
2357 /*** GENERATED CODE ***/
2358 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
2359 ( cp <= 0xFF || ( 0xFF < cp && \
2360 ( inRANGE_helper_(UV, cp, 0x130, 0x131) || ( 0x131 < cp && \
2361 ( 0x149 == cp || ( 0x149 < cp && \
2362 ( 0x178 == cp || ( 0x178 < cp && \
2363 ( 0x17F == cp || ( 0x17F < cp && \
2364 ( 0x1F0 == cp || ( 0x1F0 < cp && \
2365 ( 0x2BC == cp || ( 0x2BC < cp && \
2366 ( 0x39C == cp || ( 0x39C < cp && \
2367 ( 0x3BC == cp || ( 0x3BC < cp && \
2368 ( inRANGE_helper_(UV, cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
2369 ( 0x1E9E == cp || ( 0x1E9E < cp && \
2370 ( inRANGE_helper_(UV, cp, 0x212A, 0x212B) || inRANGE_helper_(UV, cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
2373 PATWS: pattern white space
2377 /*** GENERATED CODE ***/
2378 #define is_PATWS_safe(s,e,is_utf8) \
2379 ( ( LIKELY((e) > (s)) ) ? \
2380 ( ( '\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\
2381 : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
2382 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x55, 0x56) ) ? 3 : 0 )\
2383 : ( ( 0x42 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 ) : 0 )\
2386 #endif /* EBCDIC 1047 */
2388 #if 'A' == 193 /* EBCDIC 037 */ \
2389 && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
2390 && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
2391 && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
2393 LNBREAK: Line Break: \R
2395 "\x0D\x0A" # CRLF - Network (Windows) line ending
2398 /*** GENERATED CODE ***/
2399 #define is_LNBREAK_safe(s,e,is_utf8) \
2401 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
2402 : ( '\r' == ((const U8*)s)[0] ) ? \
2403 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
2404 : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )\
2406 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
2407 : ( '\r' == ((const U8*)s)[0] ) ? \
2408 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
2411 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] )\
2414 /*** GENERATED CODE ***/
2415 #define is_LNBREAK_utf8_safe(s,e) \
2417 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
2418 : ( '\r' == ((const U8*)s)[0] ) ? \
2419 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
2420 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )\
2422 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
2423 : ( '\r' == ((const U8*)s)[0] ) ? \
2424 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
2427 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] )\
2430 /*** GENERATED CODE ***/
2431 #define is_LNBREAK_latin1_safe(s,e) \
2433 ( ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\f') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] ) ? 1\
2434 : ( '\r' == ((const U8*)s)[0] ) ? \
2435 ( ( '\n' == ((const U8*)s)[1] ) ? 2 : 1 ) \
2438 ( inRANGE_helper_(U8, ((const U8*)s)[0], '\v', '\r') || 0x15 == ((const U8*)s)[0] || '\n' == ((const U8*)s)[0] )\
2442 HORIZWS: Horizontal Whitespace: \h \H
2446 /*** GENERATED CODE ***/
2447 #define is_HORIZWS_high(s) \
2448 ( ( 0xBD == ((const U8*)s)[0] ) ? \
2449 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2450 : ( 0xCA == ((const U8*)s)[0] ) ? \
2451 ( ( 0x41 == ((const U8*)s)[1] ) ? \
2452 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
2453 : ( 0x42 == ((const U8*)s)[1] ) ? \
2454 ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2455 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2456 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
2458 /*** GENERATED CODE ***/
2459 #define is_HORIZWS_cp_high(cp) \
2460 ( 0x1680 == cp || ( 0x1680 < cp && \
2461 ( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
2462 ( 0x202F == cp || ( 0x202F < cp && \
2463 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
2466 VERTWS: Vertical Whitespace: \v \V
2470 /*** GENERATED CODE ***/
2471 #define is_VERTWS_high(s) \
2472 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) ) ) ? 3 : 0 )
2474 /*** GENERATED CODE ***/
2475 #define is_VERTWS_cp_high(cp) \
2476 ( inRANGE_helper_(UV, cp, 0x2028, 0x2029) )
2479 XDIGIT: Hexadecimal digits
2483 /*** GENERATED CODE ***/
2484 #define is_XDIGIT_high(s) \
2485 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\
2486 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x67) ) ? 4 : 0 )\
2487 : ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x67, 0x68) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x42, 0x47) ) ) ? 4 : 0 ) : 0 )
2489 /*** GENERATED CODE ***/
2490 #define is_XDIGIT_cp_high(cp) \
2491 ( inRANGE_helper_(UV, cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp && \
2492 ( inRANGE_helper_(UV, cp, 0xFF21, 0xFF26) || inRANGE_helper_(UV, cp, 0xFF41, 0xFF46) ) ) )
2495 XPERLSPACE: \p{XPerlSpace}
2499 /*** GENERATED CODE ***/
2500 #define is_XPERLSPACE_high(s) \
2501 ( ( 0xBD == ((const U8*)s)[0] ) ? \
2502 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2503 : ( 0xCA == ((const U8*)s)[0] ) ? \
2504 ( ( 0x41 == ((const U8*)s)[1] ) ? \
2505 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
2506 : ( 0x42 == ((const U8*)s)[1] ) ? \
2507 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
2508 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2509 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
2511 /*** GENERATED CODE ***/
2512 #define is_XPERLSPACE_cp_high(cp) \
2513 ( 0x1680 == cp || ( 0x1680 < cp && \
2514 ( inRANGE_helper_(UV, cp, 0x2000, 0x200A) || ( 0x200A < cp && \
2515 ( inRANGE_helper_(UV, cp, 0x2028, 0x2029) || ( 0x2029 < cp && \
2516 ( 0x202F == cp || ( 0x202F < cp && \
2517 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) )
2520 NONCHAR: Non character code points
2524 /*** GENERATED CODE ***/
2525 #define is_NONCHAR_utf8_safe(s,e) \
2526 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
2527 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2528 ( ( 0x55 == ((const U8*)s)[2] ) ? \
2529 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x72) ) ? 4 : 0 )\
2530 : ( 0x56 == ((const U8*)s)[2] ) ? \
2531 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x56) ) ? 4 : 0 )\
2532 : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ) ? 4 : 0 )\
2534 : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
2535 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ) ? 4 : 0 )\
2536 : ( 0xED == ((const U8*)s)[0] ) ? \
2537 ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x5F || ((const U8*)s)[1] == 0x63 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x65 ) || ((const U8*)s)[1] == 0x69 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x70 ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x71, 0x72) ) ) ? 5 : 0 )\
2538 : ( ( ( ( ( 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 )
2541 SURROGATE: Surrogate code points
2545 /*** GENERATED CODE ***/
2546 #define is_SURROGATE_utf8_safe(s,e) \
2547 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x64, 0x65) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x72) ) ) ? 4 : 0 )
2550 QUOTEMETA: Meta-characters that \Q should quote
2554 /*** GENERATED CODE ***/
2555 #define is_QUOTEMETA_high_part0_(s) \
2556 ( ( 0x41 == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x54, 0x59) || 0x5F == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x72) ) ?\
2557 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
2558 : ( 0x42 == ((const U8*)s)[1] ) ? \
2559 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x71) ) ? 3 : 0 )\
2560 : ( 0x43 == ((const U8*)s)[1] ) ? \
2561 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x42, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x63, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
2562 : ( 0x44 == ((const U8*)s)[1] ) ? \
2563 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x56) ) ? 3 : 0 )\
2564 : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x57, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) ? 3 : 0 )
2567 /*** GENERATED CODE ***/
2568 #define is_QUOTEMETA_high_part1_(s) \
2569 ( ( 0xCB == ((const U8*)s)[0] ) ? \
2570 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x43) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x49, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || 0x5F == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x68) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x72) ) ?\
2571 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
2572 : ( 0x69 == ((const U8*)s)[1] ) ? \
2573 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x63) ) ? 3 : 0 )\
2574 : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) ? 3 : 0 )\
2575 : ( 0xCC == ((const U8*)s)[0] ) ? \
2576 ( ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x51, 0x59) || 0x5F == ((const U8*)s)[1] || inRANGE_helper_(U8, ((const U8*)s)[1], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[1], 0x70, 0x72) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) ? 3 : 0 )\
2577 : ( 0xCD == ((const U8*)s)[0] ) ? \
2578 ( ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x57, 0x59) || 0x5F == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ) ? 3 : 0 )\
2579 : ( 0xCE == ((const U8*)s)[0] ) ? \
2580 ( ( 0x41 == ((const U8*)s)[1] ) ? \
2581 ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x49, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x51, 0x59) || 0x5F == ((const U8*)s)[2] || inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[2], 0x70, 0x72) ) ? 3 : 0 )\
2582 : ( 0x42 == ((const U8*)s)[1] ) ? \
2583 ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
2584 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2585 : ( 0xDD == ((const U8*)s)[0] ) ? \
2586 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2587 ( ( 0x4A == ((const U8*)s)[2] ) ? \
2588 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x71, 0x72) ) ? 4 : 0 )\
2589 : ( 0x57 == ((const U8*)s)[2] ) ? \
2590 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x56) ) ? 4 : 0 )\
2591 : ( 0x59 == ((const U8*)s)[2] ) ? \
2592 ( ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x46, 0x47) ) ? 4 : 0 )\
2593 : ( 0x65 == ((const U8*)s)[2] ) ? \
2594 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2595 : ( 0x70 == ((const U8*)s)[2] ) ? \
2596 ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2597 : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x57, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x66) ) ) ? 4 : 0 )\
2599 : ( 0xDF == ((const U8*)s)[0] ) ? \
2600 ( ( 0x56 == ((const U8*)s)[1] ) ? \
2601 ( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x44) ) ) ? 4 : 0 )\
2602 : ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x68) ) ) ? 4 : 0 )\
2603 : ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x44) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[3], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x51, 0x59) || 0x5F == ((const U8*)s)[3] || inRANGE_helper_(U8, ((const U8*)s)[3], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[3], 0x70, 0x72) ) ) && ( inRANGE_helper_(U8, ((const U8*)s)[4], 0x41, 0x4A) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x51, 0x59) || 0x5F == ((const U8*)s)[4] || inRANGE_helper_(U8, ((const U8*)s)[4], 0x62, 0x6A) || inRANGE_helper_(U8, ((const U8*)s)[4], 0x70, 0x72) ) ) ? 5 : 0 )
2606 /*** GENERATED CODE ***/
2607 #define is_QUOTEMETA_high(s) \
2608 ( ( 0xAF == ((const U8*)s)[0] ) ? \
2609 ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
2610 : ( 0xB7 == ((const U8*)s)[0] ) ? \
2611 ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2612 : ( 0xBC == ((const U8*)s)[0] ) ? \
2613 ( ( 0x51 == ((const U8*)s)[1] ) ? \
2614 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2615 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2616 : ( 0xBD == ((const U8*)s)[0] ) ? \
2617 ( ( 0x62 == ((const U8*)s)[1] ) ? \
2618 ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2619 : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x62, 0x63) ) ) ? 3 : 0 )\
2620 : ( 0xBE == ((const U8*)s)[0] ) ? \
2621 ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x52, 0x55) ) ) ? 3 : 0 )\
2622 : ( 0xCA == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0_(s) : is_QUOTEMETA_high_part1_(s) )
2625 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
2627 %regcharclass_multi_char_folds::multi_char_folds('u', 'a')
2629 /*** GENERATED CODE ***/
2630 #define is_MULTI_CHAR_FOLD_utf8_safe_part0_(s,e) \
2631 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )
2634 /*** GENERATED CODE ***/
2635 #define is_MULTI_CHAR_FOLD_utf8_safe_part1_(s,e) \
2636 ( ( 0x8E == ((const U8*)s)[0] ) ? \
2637 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2638 ( ( 0x8E == ((const U8*)s)[2] ) ? \
2639 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2640 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
2642 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
2643 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2644 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2645 ( ( 0x8E == ((const U8*)s)[1] ) ? \
2646 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2647 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
2648 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
2649 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2650 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
2651 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2652 : ( 0xAA == ((const U8*)s)[0] ) ? \
2653 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
2654 : ( 0xB3 == ((const U8*)s)[0] ) ? \
2655 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
2656 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2657 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
2658 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2659 ( ( 0x43 == ((const U8*)s)[3] ) ? \
2660 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
2662 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2663 : ( 0x67 == ((const U8*)s)[1] ) ? \
2664 ( ( 0xAD == ((const U8*)s)[2] ) ? \
2665 ( ( 0x49 == ((const U8*)s)[3] ) ? \
2666 ( ( 0xAD == ((const U8*)s)[4] ) ? \
2667 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
2668 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2670 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2672 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2673 ( ( 0x42 == ((const U8*)s)[1] ) ? \
2674 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2675 : ( 0x46 == ((const U8*)s)[1] ) ? \
2676 ( ( 0xAD == ((const U8*)s)[2] ) ? \
2677 ( ( 0x49 == ((const U8*)s)[3] ) ? \
2678 ( ( 0xAD == ((const U8*)s)[4] ) ? \
2679 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 0 )\
2680 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2681 : ( 0x5F == ((const U8*)s)[3] ) ? \
2682 ( ( 0xAD == ((const U8*)s)[4] ) ? \
2683 ( ( inRANGE_helper_(U8, ((const U8*)s)[5], 0x41, 0x42) ) ? 6 : 4 )\
2684 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
2686 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2687 : ( 0x4A == ((const U8*)s)[1] ) ? \
2688 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2689 ( ( 0x43 == ((const U8*)s)[3] ) ? \
2690 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
2692 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2693 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2694 : ( 0xB7 == ((const U8*)s)[0] ) ? \
2695 ( ( 0x52 == ((const U8*)s)[1] ) ? \
2696 ( ( 0x46 == ((const U8*)s)[2] ) ? \
2697 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2698 : ( 0x62 == ((const U8*)s)[2] ) ? \
2699 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x46 == ((const U8*)s)[5] || 0x52 == ((const U8*)s)[5] || 0x54 == ((const U8*)s)[5] || 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2700 : ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
2702 : ( 0xBF == ((const U8*)s)[0] ) ? \
2703 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x66, 0x67) ) ? \
2704 ( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
2705 : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
2709 /*** GENERATED CODE ***/
2710 #define is_MULTI_CHAR_FOLD_utf8_safe_part2_(s,e) \
2711 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
2712 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2713 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2714 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2715 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
2716 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
2717 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
2718 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2719 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
2720 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2721 : ( 0x8E == ((const U8*)s)[0] ) ? \
2722 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2723 ( ( 0x8E == ((const U8*)s)[2] ) ? \
2724 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2725 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
2727 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
2728 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2729 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2730 ( ( 0x8E == ((const U8*)s)[1] ) ? \
2731 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2732 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
2733 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
2734 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2735 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
2736 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2737 : ( 0xAA == ((const U8*)s)[0] ) ? \
2738 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
2739 : ( 0xB3 == ((const U8*)s)[0] ) ? \
2740 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
2741 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2742 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
2743 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2744 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2745 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2746 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2747 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2748 ( ( 0x42 == ((const U8*)s)[1] ) ? \
2749 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2750 : ( 0x46 == ((const U8*)s)[1] ) ? \
2751 ( ( 0xAD == ((const U8*)s)[2] ) ? \
2752 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 ) \
2753 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2754 : ( 0x4A == ((const U8*)s)[1] ) ? \
2755 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2756 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2757 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2758 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2759 : ( 0xBF == ((const U8*)s)[0] ) ? \
2760 ( ( inRANGE_helper_(U8, ((const U8*)s)[1], 0x66, 0x67) ) ? \
2761 ( ( ( ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
2762 : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE_helper_(U8, ((const U8*)s)[2], 0x41, 0x48) || 0x57 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x6A == ((const U8*)s)[2] ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
2766 /*** GENERATED CODE ***/
2767 #define is_MULTI_CHAR_FOLD_utf8_safe_part3_(s,e) \
2769 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
2770 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2771 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2772 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2773 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
2774 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
2775 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
2776 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2777 : ( ( ((const U8*)s)[0] & 0xBF ) == 'i' ) ? \
2778 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2779 : ( 0x8E == ((const U8*)s)[0] ) ? \
2780 ( ( 0x72 == ((const U8*)s)[1] ) ? \
2781 ( ( 0x8E == ((const U8*)s)[2] ) ? \
2782 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2783 : ( ( ((const U8*)s)[2] & 0xBE ) == 's' ) ? 3 : 0 ) \
2785 : ( ( ((const U8*)s)[0] & 0xBF ) == 'j' ) ? \
2786 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2787 : ( ( ((const U8*)s)[0] & 0xBF ) == 's' ) ? \
2788 ( ( 0x8E == ((const U8*)s)[1] ) ? \
2789 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
2790 : ( ( ((const U8*)s)[1] & 0xBE ) == 's' ) ? 2 : 0 ) \
2791 : ( ( ((const U8*)s)[0] & 0xBF ) == 't' ) ? \
2792 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2793 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 'w' ) || ( ( ((const U8*)s)[0] & 0xBF ) == 'y' ) ) ?\
2794 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2795 : ( 0xAA == ((const U8*)s)[0] ) ? \
2796 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xBF ) == 'n' ) ) ? 3 : 0 )\
2797 : ( 0xB3 == ((const U8*)s)[0] ) ? \
2798 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
2799 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2800 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
2801 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2802 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2803 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2804 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2805 : ( 0xB4 == ((const U8*)s)[0] ) ? \
2806 ( ( 0x42 == ((const U8*)s)[1] ) ? \
2807 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2808 : ( 0x46 == ((const U8*)s)[1] ) ? \
2809 ( ( 0xAD == ((const U8*)s)[2] ) ? \
2810 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 ) \
2811 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2812 : ( 0x4A == ((const U8*)s)[1] ) ? \
2813 ( ( 0xAF == ((const U8*)s)[2] ) ? \
2814 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
2815 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2816 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
2819 ( ( ( ((const U8*)s)[0] & 0xBF ) == 'a' ) ? \
2820 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
2821 : ( ( ((const U8*)s)[0] & 0xBF ) == 'f' ) ? \
2822 ( ( ( ((const U8*)s)[1] & 0xBF ) == 'f' ) ? \
2823 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[2] & 0xBF ) == 'l' ) ) ? 3 : 2 )\
2824 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 'i' ) || ( ( ((const U8*)s)[1] & 0xBF ) == 'l' ) ) ? 2 : 0 )\
2825 : ( ( ((const U8*)s)[0] & 0xBF ) == 'h' ) ? \
2826 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\