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(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1 \
32 : ( 0x0D == ((const U8*)s)[0] ) ? \
33 ( ( 0x0A == ((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(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )\
38 : ( 0x85 == ((const U8*)s)[0] ) ) \
40 ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1 \
41 : ( 0x0D == ((const U8*)s)[0] ) ? \
42 ( ( 0x0A == ((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(((const U8*)s)[0], 0x0A, 0x0D ) ) ? 1 \
48 : ( !( is_utf8 ) ) ? \
49 ( 0x85 == ((const U8*)s)[0] ) \
53 /*** GENERATED CODE ***/
54 #define is_LNBREAK_utf8_safe(s,e) \
56 ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1 \
57 : ( 0x0D == ((const U8*)s)[0] ) ? \
58 ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 ) \
59 : ( 0xC2 == ((const U8*)s)[0] ) ? \
60 ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
61 : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )\
63 ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) ) ? 1 \
64 : ( 0x0D == ((const U8*)s)[0] ) ? \
65 ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 ) \
66 : ( ( 0xC2 == ((const U8*)s)[0] ) && ( 0x85 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
68 ( inRANGE(((const U8*)s)[0], 0x0A, 0x0D ) ) \
71 /*** GENERATED CODE ***/
72 #define is_LNBREAK_latin1_safe(s,e) \
74 ( ( inRANGE(((const U8*)s)[0], 0x0A, 0x0C ) || 0x85 == ((const U8*)s)[0] ) ? 1\
75 : ( 0x0D == ((const U8*)s)[0] ) ? \
76 ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 ) \
79 ( inRANGE(((const U8*)s)[0], 0x0A, 0x0D ) || 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(((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(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(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )
113 /*** GENERATED CODE ***/
114 #define is_VERTWS_cp_high(cp) \
115 ( 0x2028 == cp || 0x2029 == cp )
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(((const U8*)s)[2], 0x90, 0x99 ) || inRANGE(((const U8*)s)[2], 0xA1, 0xA6 ) ) ? 3 : 0 )\
127 : ( ( 0xBD == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x81, 0x86 ) ) ) ? 3 : 0 )\
130 /*** GENERATED CODE ***/
131 #define is_XDIGIT_cp_high(cp) \
132 ( inRANGE(cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp && \
133 ( inRANGE(cp, 0xFF21, 0xFF26) || inRANGE(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(((const U8*)s)[2], 0x80, 0x8A ) || inRANGE(((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(cp, 0x2000, 0x200A) || ( 0x200A < cp && \
154 ( 0x2028 == cp || ( 0x2028 < cp && \
155 ( 0x2029 == cp || ( 0x2029 < cp && \
156 ( 0x202F == cp || ( 0x202F < cp && \
157 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
160 NONCHAR: Non character code points
164 /*** GENERATED CODE ***/
165 #define is_NONCHAR_utf8_safe(s,e) \
166 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xEF == ((const U8*)s)[0] ) ?\
167 ( ( 0xB7 == ((const U8*)s)[1] ) ? \
168 ( ( inRANGE(((const U8*)s)[2], 0x90, 0xAF ) ) ? 3 : 0 ) \
169 : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xBE, 0xBF ) ) ) ? 3 : 0 )\
170 : ( 0xF0 == ((const U8*)s)[0] ) ? \
171 ( ( ( ( ((const U8*)s)[1] == 0x9F || ( ( ((const U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xBE, 0xBF ) ) ) ? 4 : 0 )\
172 : ( inRANGE(((const U8*)s)[0], 0xF1, 0xF3 ) ) ? \
173 ( ( ( ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xBE, 0xBF ) ) ) ? 4 : 0 )\
174 : ( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( 0x8F == ((const U8*)s)[1] ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xBE, 0xBF ) ) ) ? 4 : 0 ) : 0 )
177 SURROGATE: Surrogate code points
181 /*** GENERATED CODE ***/
182 #define is_SURROGATE_utf8_safe(s,e) \
183 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0xA0, 0xBF ) ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0xBF ) ) ) ? 3 : 0 )
186 QUOTEMETA: Meta-characters that \Q should quote
190 /*** GENERATED CODE ***/
191 #define is_QUOTEMETA_high(s) \
192 ( ( 0xCD == ((const U8*)s)[0] ) ? \
193 ( ( 0x8F == ((const U8*)s)[1] ) ? 2 : 0 ) \
194 : ( 0xD8 == ((const U8*)s)[0] ) ? \
195 ( ( 0x9C == ((const U8*)s)[1] ) ? 2 : 0 ) \
196 : ( 0xE1 == ((const U8*)s)[0] ) ? \
197 ( ( 0x85 == ((const U8*)s)[1] ) ? \
198 ( ( inRANGE(((const U8*)s)[2], 0x9F, 0xA0 ) ) ? 3 : 0 ) \
199 : ( 0x9A == ((const U8*)s)[1] ) ? \
200 ( ( 0x80 == ((const U8*)s)[2] ) ? 3 : 0 ) \
201 : ( 0x9E == ((const U8*)s)[1] ) ? \
202 ( ( inRANGE(((const U8*)s)[2], 0xB4, 0xB5 ) ) ? 3 : 0 ) \
203 : ( ( 0xA0 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x8B, 0x8E ) ) ) ? 3 : 0 )\
204 : ( 0xE2 == ((const U8*)s)[0] ) ? \
205 ( ( 0x80 == ((const U8*)s)[1] ) ? \
206 ( ( inRANGE(((const U8*)s)[2], 0x80, 0xBE ) ) ? 3 : 0 ) \
207 : ( 0x81 == ((const U8*)s)[1] ) ? \
208 ( ( inRANGE(((const U8*)s)[2], 0x81, 0x93 ) || inRANGE(((const U8*)s)[2], 0x95, 0xAF ) ) ? 3 : 0 )\
209 : ( 0x86 == ((const U8*)s)[1] ) ? \
210 ( ( inRANGE(((const U8*)s)[2], 0x90, 0xBF ) ) ? 3 : 0 ) \
211 : ( inRANGE(((const U8*)s)[1], 0x87, 0x90 ) || inRANGE(((const U8*)s)[1], 0x94, 0x9C ) || inRANGE(((const U8*)s)[1], 0x9F, 0xAF ) || inRANGE(((const U8*)s)[1], 0xB8, 0xB9 ) ) ?\
213 : ( 0x91 == ((const U8*)s)[1] ) ? \
214 ( ( inRANGE(((const U8*)s)[2], 0x80, 0x9F ) ) ? 3 : 0 ) \
215 : ( 0x9D == ((const U8*)s)[1] ) ? \
216 ( ( inRANGE(((const U8*)s)[2], 0x80, 0xB5 ) ) ? 3 : 0 ) \
217 : ( ( 0x9E == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x94, 0xBF ) ) ) ? 3 : 0 )\
218 : ( 0xE3 == ((const U8*)s)[0] ) ? \
219 ( ( 0x80 == ((const U8*)s)[1] ) ? \
220 ( ( inRANGE(((const U8*)s)[2], 0x80, 0x83 ) || inRANGE(((const U8*)s)[2], 0x88, 0xA0 ) || 0xB0 == ((const U8*)s)[2] ) ? 3 : 0 )\
221 : ( ( 0x85 == ((const U8*)s)[1] ) && ( 0xA4 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
222 : ( 0xEF == ((const U8*)s)[0] ) ? \
223 ( ( 0xB4 == ((const U8*)s)[1] ) ? \
224 ( ( inRANGE(((const U8*)s)[2], 0xBE, 0xBF ) ) ? 3 : 0 ) \
225 : ( 0xB8 == ((const U8*)s)[1] ) ? \
226 ( ( inRANGE(((const U8*)s)[2], 0x80, 0x8F ) ) ? 3 : 0 ) \
227 : ( 0xB9 == ((const U8*)s)[1] ) ? \
228 ( ( inRANGE(((const U8*)s)[2], 0x85, 0x86 ) ) ? 3 : 0 ) \
229 : ( 0xBB == ((const U8*)s)[1] ) ? \
230 ( ( 0xBF == ((const U8*)s)[2] ) ? 3 : 0 ) \
231 : ( 0xBE == ((const U8*)s)[1] ) ? \
232 ( ( 0xA0 == ((const U8*)s)[2] ) ? 3 : 0 ) \
233 : ( ( 0xBF == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xB0, 0xB8 ) ) ) ? 3 : 0 )\
234 : ( 0xF0 == ((const U8*)s)[0] ) ? \
235 ( ( 0x9B == ((const U8*)s)[1] ) ? \
236 ( ( ( 0xB2 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0xA0, 0xA3 ) ) ) ? 4 : 0 )\
237 : ( ( ( 0x9D == ((const U8*)s)[1] ) && ( 0x85 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0xB3, 0xBA ) ) ) ? 4 : 0 )\
238 : ( ( 0xF3 == ((const U8*)s)[0] ) && ( 0xA0 == ((const U8*)s)[1] ) ) ? 4 : 0 )
241 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
243 ®charclass_multi_char_folds::multi_char_folds(1)
245 /*** GENERATED CODE ***/
246 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
247 ( ( 0x61 == ((const U8*)s)[0] ) ? \
248 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
249 : ( 0x66 == ((const U8*)s)[0] ) ? \
250 ( ( 0x66 == ((const U8*)s)[1] ) ? \
251 ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
252 : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
253 : ( 0x68 == ((const U8*)s)[0] ) ? \
254 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
255 : ( 0x69 == ((const U8*)s)[0] ) ? \
256 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
257 : ( 0x6A == ((const U8*)s)[0] ) ? \
258 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
259 : ( 0x73 == ((const U8*)s)[0] ) ? \
260 ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 ) \
261 : ( 0x74 == ((const U8*)s)[0] ) ? \
262 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
263 : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
264 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
265 : ( 0xC5 == ((const U8*)s)[0] ) ? \
266 ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
267 : ( 0xCA == ((const U8*)s)[0] ) ? \
268 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
269 : ( 0xCE == ((const U8*)s)[0] ) ? \
270 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
271 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
272 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
273 ( ( 0xCD == ((const U8*)s)[2] ) ? \
274 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
275 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
276 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
277 : ( 0xCF == ((const U8*)s)[0] ) ? \
278 ( ( 0x81 == ((const U8*)s)[1] ) ? \
279 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
280 : ( 0x85 == ((const U8*)s)[1] ) ? \
281 ( ( 0xCC == ((const U8*)s)[2] ) ? \
282 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
283 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
284 : ( 0x89 == ((const U8*)s)[1] ) ? \
285 ( ( 0xCD == ((const U8*)s)[2] ) ? \
286 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
287 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
288 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
289 : ( 0xD5 == ((const U8*)s)[0] ) ? \
290 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
291 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
292 : ( 0xB4 == ((const U8*)s)[1] ) ? \
293 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
294 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
295 : ( 0xE1 == ((const U8*)s)[0] ) ? \
296 ( ( 0xBC == ((const U8*)s)[1] ) ? \
297 ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
298 : ( ( ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
302 /*** GENERATED CODE ***/
303 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
305 ( ( 0x61 == ((const U8*)s)[0] ) ? \
306 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
307 : ( 0x66 == ((const U8*)s)[0] ) ? \
308 ( ( 0x66 == ((const U8*)s)[1] ) ? \
309 ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
310 : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
311 : ( 0x68 == ((const U8*)s)[0] ) ? \
312 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
313 : ( 0x69 == ((const U8*)s)[0] ) ? \
314 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
315 : ( 0x6A == ((const U8*)s)[0] ) ? \
316 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
317 : ( 0x73 == ((const U8*)s)[0] ) ? \
318 ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 ) \
319 : ( 0x74 == ((const U8*)s)[0] ) ? \
320 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
321 : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
322 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
323 : ( 0xC5 == ((const U8*)s)[0] ) ? \
324 ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
325 : ( 0xCA == ((const U8*)s)[0] ) ? \
326 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
327 : ( 0xCE == ((const U8*)s)[0] ) ? \
328 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
329 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
330 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
331 ( ( 0xCD == ((const U8*)s)[2] ) ? \
332 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
333 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
334 : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
335 : ( 0xCF == ((const U8*)s)[0] ) ? \
336 ( ( 0x81 == ((const U8*)s)[1] ) ? \
337 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
338 : ( 0x85 == ((const U8*)s)[1] ) ? \
339 ( ( 0xCC == ((const U8*)s)[2] ) ? \
340 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 ) \
341 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
342 : ( 0x89 == ((const U8*)s)[1] ) ? \
343 ( ( 0xCD == ((const U8*)s)[2] ) ? \
344 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 ) \
345 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
346 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
347 : ( 0xD5 == ((const U8*)s)[0] ) ? \
348 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
349 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
350 : ( 0xB4 == ((const U8*)s)[1] ) ? \
351 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
352 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
355 ( ( 0x61 == ((const U8*)s)[0] ) ? \
356 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
357 : ( 0x66 == ((const U8*)s)[0] ) ? \
358 ( ( 0x66 == ((const U8*)s)[1] ) ? \
359 ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
360 : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
361 : ( 0x68 == ((const U8*)s)[0] ) ? \
362 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
363 : ( 0x69 == ((const U8*)s)[0] ) ? \
364 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
365 : ( 0x6A == ((const U8*)s)[0] ) ? \
366 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
367 : ( 0x73 == ((const U8*)s)[0] ) ? \
368 ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 ) \
369 : ( 0x74 == ((const U8*)s)[0] ) ? \
370 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
371 : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
372 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
373 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
375 ( ( 0x66 == ((const U8*)s)[0] ) ? \
376 ( ( 0x66 == ((const U8*)s)[1] || 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
377 : ( ( 0x73 == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ) ? 2 : 0 )\
381 /*** GENERATED CODE ***/
382 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
384 ( ( 0x61 == ((const U8*)s)[0] ) ? \
385 ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
386 : ( 0x66 == ((const U8*)s)[0] ) ? \
387 ( ( 0x66 == ((const U8*)s)[1] ) ? \
388 ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
389 : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
390 : ( 0x68 == ((const U8*)s)[0] ) ? \
391 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
392 : ( 0x69 == ((const U8*)s)[0] ) ? \
393 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
394 : ( 0x6A == ((const U8*)s)[0] ) ? \
395 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
396 : ( 0x73 == ((const U8*)s)[0] ) ? \
397 ( ( inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ? 2 : 0 ) \
398 : ( 0x74 == ((const U8*)s)[0] ) ? \
399 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
400 : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ? \
401 ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
402 : ( 0xC5 == ((const U8*)s)[0] ) ? \
403 ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
404 : ( 0xCA == ((const U8*)s)[0] ) ? \
405 ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
406 : ( 0xCE == ((const U8*)s)[0] ) ? \
407 ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ? \
408 ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
409 : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ? \
410 ( ( 0xCD == ((const U8*)s)[2] ) ? \
411 ( ( 0x82 == ((const U8*)s)[3] ) ? \
412 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
414 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
415 : ( 0xB9 == ((const U8*)s)[1] ) ? \
416 ( ( 0xCC == ((const U8*)s)[2] ) ? \
417 ( ( 0x88 == ((const U8*)s)[3] ) ? \
418 ( ( 0xCC == ((const U8*)s)[4] ) ? \
419 ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81 ) ) ? 6 : 0 )\
420 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
422 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
424 : ( 0xCF == ((const U8*)s)[0] ) ? \
425 ( ( 0x81 == ((const U8*)s)[1] ) ? \
426 ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
427 : ( 0x85 == ((const U8*)s)[1] ) ? \
428 ( ( 0xCC == ((const U8*)s)[2] ) ? \
429 ( ( 0x88 == ((const U8*)s)[3] ) ? \
430 ( ( 0xCC == ((const U8*)s)[4] ) ? \
431 ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81 ) ) ? 6 : 0 )\
432 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
433 : ( 0x93 == ((const U8*)s)[3] ) ? \
434 ( ( 0xCC == ((const U8*)s)[4] ) ? \
435 ( ( inRANGE(((const U8*)s)[5], 0x80, 0x81 ) ) ? 6 : 4 )\
436 : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
438 : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
439 : ( 0x89 == ((const U8*)s)[1] ) ? \
440 ( ( 0xCD == ((const U8*)s)[2] ) ? \
441 ( ( 0x82 == ((const U8*)s)[3] ) ? \
442 ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
444 : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
445 : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
446 : ( 0xD5 == ((const U8*)s)[0] ) ? \
447 ( ( 0xA5 == ((const U8*)s)[1] ) ? \
448 ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
449 : ( 0xB4 == ((const U8*)s)[1] ) ? \
450 ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
451 : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
452 : ( 0xE1 == ((const U8*)s)[0] ) ? \
453 ( ( 0xBC == ((const U8*)s)[1] ) ? \
454 ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
455 : ( ( ( ( 0xBD == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xF8 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFB ) == 0xB0 ) || ((const U8*)s)[2] == 0xBC ) ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
457 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
460 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
462 ®charclass_multi_char_folds::multi_char_folds(0)
464 /*** GENERATED CODE ***/
465 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
467 ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ? \
468 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) ? \
469 ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[2] & 0xDF ) == 0x4C ) ) ? 3 : 2 )\
470 : ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
471 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x53 ) && ( inRANGE(((const U8*)s)[1], 0x53, 0x54 ) || inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ) ? 2 : 0 )\
473 ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ? \
474 ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
475 : ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x53 ) && ( inRANGE(((const U8*)s)[1], 0x53, 0x54 ) || inRANGE(((const U8*)s)[1], 0x73, 0x74 ) ) ) ? 2 : 0 )\
479 FOLDS_TO_MULTI: characters that fold to multi-char strings
481 \p{_Perl_Folds_To_Multi_Char}
483 /*** GENERATED CODE ***/
484 #define is_FOLDS_TO_MULTI_utf8(s) \
485 ( ( 0xC3 == ((const U8*)s)[0] ) ? \
486 ( ( 0x9F == ((const U8*)s)[1] ) ? 2 : 0 ) \
487 : ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ? \
488 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
489 : ( 0xC5 == ((const U8*)s)[0] ) ? \
490 ( ( 0x89 == ((const U8*)s)[1] ) ? 2 : 0 ) \
491 : ( 0xCE == ((const U8*)s)[0] ) ? \
492 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x90 ) ? 2 : 0 ) \
493 : ( 0xD6 == ((const U8*)s)[0] ) ? \
494 ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 ) \
495 : ( 0xE1 == ((const U8*)s)[0] ) ? \
496 ( ( 0xBA == ((const U8*)s)[1] ) ? \
497 ( ( inRANGE(((const U8*)s)[2], 0x96, 0x9A ) || 0x9E == ((const U8*)s)[2] ) ? 3 : 0 )\
498 : ( 0xBD == ((const U8*)s)[1] ) ? \
499 ( ( ( ((const U8*)s)[2] & 0xF9 ) == 0x90 ) ? 3 : 0 ) \
500 : ( 0xBE == ((const U8*)s)[1] ) ? \
501 ( ( inRANGE(((const U8*)s)[2], 0x80, 0xAF ) || inRANGE(((const U8*)s)[2], 0xB2, 0xB4 ) || inRANGE(((const U8*)s)[2], 0xB6, 0xB7 ) || 0xBC == ((const U8*)s)[2] ) ? 3 : 0 )\
502 : ( ( 0xBF == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xCA ) == 0x82 ) || ( ( ((const U8*)s)[2] & 0xF7 ) == 0x84 ) || ((const U8*)s)[2] == 0xA4 || ( ( ((const U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ) ? 3 : 0 )\
503 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0x86 ) || inRANGE(((const U8*)s)[2], 0x93, 0x97 ) ) ) ? 3 : 0 )
506 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
508 \p{_Perl_Problematic_Locale_Folds}
510 /*** GENERATED CODE ***/
511 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
512 ( ( ((const U8*)s)[0] <= 0x7F ) ? 1 \
513 : ( inRANGE(((const U8*)s)[0], 0xC2, 0xC3 ) ) ? \
515 : ( 0xC4 == ((const U8*)s)[0] ) ? \
516 ( ( inRANGE(((const U8*)s)[1], 0xB0, 0xB1 ) ) ? 2 : 0 ) \
517 : ( 0xC5 == ((const U8*)s)[0] ) ? \
518 ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
519 : ( 0xC7 == ((const U8*)s)[0] ) ? \
520 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
521 : ( 0xCC == ((const U8*)s)[0] ) ? \
522 ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 ) \
523 : ( 0xCE == ((const U8*)s)[0] ) ? \
524 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
525 : ( 0xE1 == ((const U8*)s)[0] ) ? \
526 ( ( ( 0xBA == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x96, 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
527 : ( 0xE2 == ((const U8*)s)[0] ) ? \
528 ( ( ( 0x84 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xAA, 0xAB ) ) ) ? 3 : 0 )\
529 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0x86 ) ) ) ? 3 : 0 )
531 /*** GENERATED CODE ***/
532 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
533 ( cp <= 0xFF || ( 0xFF < cp && \
534 ( 0x130 == cp || ( 0x130 < cp && \
535 ( 0x131 == cp || ( 0x131 < cp && \
536 ( 0x149 == cp || ( 0x149 < cp && \
537 ( 0x178 == cp || ( 0x178 < cp && \
538 ( 0x17F == cp || ( 0x17F < cp && \
539 ( 0x1F0 == cp || ( 0x1F0 < cp && \
540 ( 0x307 == cp || ( 0x307 < cp && \
541 ( 0x39C == cp || ( 0x39C < cp && \
542 ( 0x3BC == cp || ( 0x3BC < cp && \
543 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
544 ( 0x1E9E == cp || ( 0x1E9E < cp && \
545 ( 0x212A == cp || ( 0x212A < cp && \
546 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
549 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
551 \p{_Perl_Problematic_Locale_Foldeds_Start}
553 /*** GENERATED CODE ***/
554 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
555 ( ( ((const U8*)s)[0] <= 0x7F ) ? 1 \
556 : ( inRANGE(((const U8*)s)[0], 0xC2, 0xC3 ) ) ? \
558 : ( 0xC4 == ((const U8*)s)[0] ) ? \
559 ( ( inRANGE(((const U8*)s)[1], 0xB0, 0xB1 ) ) ? 2 : 0 ) \
560 : ( 0xC5 == ((const U8*)s)[0] ) ? \
561 ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
562 : ( 0xC7 == ((const U8*)s)[0] ) ? \
563 ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 ) \
564 : ( 0xCA == ((const U8*)s)[0] ) ? \
565 ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 ) \
566 : ( 0xCE == ((const U8*)s)[0] ) ? \
567 ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 ) \
568 : ( 0xE1 == ((const U8*)s)[0] ) ? \
569 ( ( ( 0xBA == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x96, 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
570 : ( 0xE2 == ((const U8*)s)[0] ) ? \
571 ( ( ( 0x84 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0xAA, 0xAB ) ) ) ? 3 : 0 )\
572 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0x86 ) ) ) ? 3 : 0 )
574 /*** GENERATED CODE ***/
575 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
576 ( cp <= 0xFF || ( 0xFF < cp && \
577 ( 0x130 == cp || ( 0x130 < cp && \
578 ( 0x131 == cp || ( 0x131 < cp && \
579 ( 0x149 == cp || ( 0x149 < cp && \
580 ( 0x178 == cp || ( 0x178 < cp && \
581 ( 0x17F == cp || ( 0x17F < cp && \
582 ( 0x1F0 == cp || ( 0x1F0 < cp && \
583 ( 0x2BC == cp || ( 0x2BC < cp && \
584 ( 0x39C == cp || ( 0x39C < cp && \
585 ( 0x3BC == cp || ( 0x3BC < cp && \
586 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
587 ( 0x1E9E == cp || ( 0x1E9E < cp && \
588 ( 0x212A == cp || ( 0x212A < cp && \
589 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
592 PATWS: pattern white space
596 /*** GENERATED CODE ***/
597 #define is_PATWS_safe(s,e,is_utf8) \
598 ( ( LIKELY((e) > (s)) ) ? \
599 ( ( inRANGE(((const U8*)s)[0], 0x09, 0x0D ) || 0x20 == ((const U8*)s)[0] ) ? 1\
601 ( 0x85 == ((const U8*)s)[0] ) \
602 : ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ? \
603 ( ( 0xC2 == ((const U8*)s)[0] ) ? \
604 ( ( 0x85 == ((const U8*)s)[1] ) ? 2 : 0 ) \
605 : ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x8E, 0x8F ) || inRANGE(((const U8*)s)[2], 0xA8, 0xA9 ) ) ) ? 3 : 0 )\
609 /*** GENERATED CODE ***/
610 #define is_PATWS_cp(cp) \
611 ( inRANGE(cp, 0x09, 0x0D) || ( 0x0D < cp && \
612 ( 0x20 == cp || ( 0x20 < cp && \
613 ( 0x85 == cp || ( 0x85 < cp && \
614 ( 0x200E == cp || ( 0x200E < cp && \
615 ( 0x200F == cp || ( 0x200F < cp && \
616 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) )
619 HANGUL_ED: Hangul syllables whose first character is \xED
623 /*** GENERATED CODE ***/
624 #define is_HANGUL_ED_utf8_safe(s,e) \
625 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0x80, 0x9F ) ) ) && ( inRANGE(((const U8*)s)[2], 0x80, 0xBF ) ) ) ? 3 : 0 )
627 #endif /* ASCII/Latin1 */
629 #if 'A' == 193 /* EBCDIC 1047 */ \
630 && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
631 && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
632 && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 21
634 LNBREAK: Line Break: \R
636 "\x0D\x0A" # CRLF - Network (Windows) line ending
639 /*** GENERATED CODE ***/
640 #define is_LNBREAK_safe(s,e,is_utf8) \
642 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
643 : ( 0x0D == ((const U8*)s)[0] ) ? \
644 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
645 : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
647 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
648 : ( 0x0D == ((const U8*)s)[0] ) ? \
649 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
652 ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
655 /*** GENERATED CODE ***/
656 #define is_LNBREAK_utf8_safe(s,e) \
658 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
659 : ( 0x0D == ((const U8*)s)[0] ) ? \
660 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
661 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
663 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
664 : ( 0x0D == ((const U8*)s)[0] ) ? \
665 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
668 ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
671 /*** GENERATED CODE ***/
672 #define is_LNBREAK_latin1_safe(s,e) \
674 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
675 : ( 0x0D == ((const U8*)s)[0] ) ? \
676 ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 ) \
679 ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
683 HORIZWS: Horizontal Whitespace: \h \H
687 /*** GENERATED CODE ***/
688 #define is_HORIZWS_high(s) \
689 ( ( 0xBC == ((const U8*)s)[0] ) ? \
690 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
691 : ( 0xCA == ((const U8*)s)[0] ) ? \
692 ( ( 0x41 == ((const U8*)s)[1] ) ? \
693 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
694 : ( 0x42 == ((const U8*)s)[1] ) ? \
695 ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
696 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
697 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
699 /*** GENERATED CODE ***/
700 #define is_HORIZWS_cp_high(cp) \
701 ( 0x1680 == cp || ( 0x1680 < cp && \
702 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp && \
703 ( 0x202F == cp || ( 0x202F < cp && \
704 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
707 VERTWS: Vertical Whitespace: \v \V
711 /*** GENERATED CODE ***/
712 #define is_VERTWS_high(s) \
713 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )
715 /*** GENERATED CODE ***/
716 #define is_VERTWS_cp_high(cp) \
717 ( 0x2028 == cp || 0x2029 == cp )
720 XDIGIT: Hexadecimal digits
724 /*** GENERATED CODE ***/
725 #define is_XDIGIT_high(s) \
726 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x73 == ((const U8*)s)[1] ) ) ? ( ( 0x67 == ((const U8*)s)[2] ) ?\
727 ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x68 ) ) ? 4 : 0 )\
728 : ( ( inRANGE(((const U8*)s)[2], 0x68, 0x69 ) ) && ( inRANGE(((const U8*)s)[3], 0x42, 0x47 ) ) ) ? 4 : 0 ) : 0 )
730 /*** GENERATED CODE ***/
731 #define is_XDIGIT_cp_high(cp) \
732 ( inRANGE(cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp && \
733 ( inRANGE(cp, 0xFF21, 0xFF26) || inRANGE(cp, 0xFF41, 0xFF46) ) ) )
736 XPERLSPACE: \p{XPerlSpace}
740 /*** GENERATED CODE ***/
741 #define is_XPERLSPACE_high(s) \
742 ( ( 0xBC == ((const U8*)s)[0] ) ? \
743 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
744 : ( 0xCA == ((const U8*)s)[0] ) ? \
745 ( ( 0x41 == ((const U8*)s)[1] ) ? \
746 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
747 : ( 0x42 == ((const U8*)s)[1] ) ? \
748 ( ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
749 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
750 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
752 /*** GENERATED CODE ***/
753 #define is_XPERLSPACE_cp_high(cp) \
754 ( 0x1680 == cp || ( 0x1680 < cp && \
755 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp && \
756 ( 0x2028 == cp || ( 0x2028 < cp && \
757 ( 0x2029 == cp || ( 0x2029 < cp && \
758 ( 0x202F == cp || ( 0x202F < cp && \
759 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
762 NONCHAR: Non character code points
766 /*** GENERATED CODE ***/
767 #define is_NONCHAR_utf8_safe(s,e) \
768 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
769 ( ( 0x73 == ((const U8*)s)[1] ) ? \
770 ( ( 0x55 == ((const U8*)s)[2] ) ? \
771 ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x73 ) ) ? 4 : 0 )\
772 : ( 0x56 == ((const U8*)s)[2] ) ? \
773 ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
774 : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x72, 0x73 ) ) ) ? 4 : 0 )\
776 : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
777 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x72, 0x73 ) ) ) ? 4 : 0 )\
778 : ( 0xED == ((const U8*)s)[0] ) ? \
779 ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x62 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x71 ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x72, 0x73 ) ) ) ? 5 : 0 )\
780 : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x72, 0x73 ) ) ) ? 5 : 0 ) : 0 )
783 SURROGATE: Surrogate code points
787 /*** GENERATED CODE ***/
788 #define is_SURROGATE_utf8_safe(s,e) \
789 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0x65, 0x66 ) ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x73 ) ) ) ? 4 : 0 )
792 QUOTEMETA: Meta-characters that \Q should quote
796 /*** GENERATED CODE ***/
797 #define is_QUOTEMETA_high(s) \
798 ( ( 0xB1 == ((const U8*)s)[0] ) ? \
799 ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
800 : ( 0xB8 == ((const U8*)s)[0] ) ? \
801 ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
802 : ( 0xBB == ((const U8*)s)[0] ) ? \
803 ( ( 0x51 == ((const U8*)s)[1] ) ? \
804 ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 ) \
805 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
806 : ( 0xBC == ((const U8*)s)[0] ) ? \
807 ( ( 0x63 == ((const U8*)s)[1] ) ? \
808 ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
809 : ( ( 0x71 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x63, 0x64 ) ) ) ? 3 : 0 )\
810 : ( 0xBE == ((const U8*)s)[0] ) ? \
811 ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x52, 0x55 ) ) ) ? 3 : 0 )\
812 : ( 0xCA == ((const U8*)s)[0] ) ? \
813 ( ( 0x41 == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x54, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) ?\
814 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
815 : ( 0x42 == ((const U8*)s)[1] ) ? \
816 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
817 : ( 0x43 == ((const U8*)s)[1] ) ? \
818 ( ( inRANGE(((const U8*)s)[2], 0x42, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x62 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x64, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
819 : ( 0x44 == ((const U8*)s)[1] ) ? \
820 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) ) ? 3 : 0 )\
821 : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x57, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
822 : ( 0xCB == ((const U8*)s)[0] ) ? \
823 ( ( inRANGE(((const U8*)s)[1], 0x41, 0x43 ) || inRANGE(((const U8*)s)[1], 0x49, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x69 ) || inRANGE(((const U8*)s)[1], 0x71, 0x73 ) ) ?\
824 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
825 : ( 0x6A == ((const U8*)s)[1] ) ? \
826 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x64 ) ) ? 3 : 0 )\
827 : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x63, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
828 : ( 0xCC == ((const U8*)s)[0] ) ? \
829 ( ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
830 : ( 0xCD == ((const U8*)s)[0] ) ? \
831 ( ( ( inRANGE(((const U8*)s)[1], 0x57, 0x59 ) || 0x62 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ) ? 3 : 0 )\
832 : ( 0xCE == ((const U8*)s)[0] ) ? \
833 ( ( 0x41 == ((const U8*)s)[1] ) ? \
834 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) || inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
835 : ( 0x42 == ((const U8*)s)[1] ) ? \
836 ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
837 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
838 : ( 0xDD == ((const U8*)s)[0] ) ? \
839 ( ( 0x73 == ((const U8*)s)[1] ) ? \
840 ( ( 0x4A == ((const U8*)s)[2] ) ? \
841 ( ( inRANGE(((const U8*)s)[3], 0x72, 0x73 ) ) ? 4 : 0 ) \
842 : ( 0x57 == ((const U8*)s)[2] ) ? \
843 ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
844 : ( 0x59 == ((const U8*)s)[2] ) ? \
845 ( ( inRANGE(((const U8*)s)[3], 0x46, 0x47 ) ) ? 4 : 0 ) \
846 : ( 0x66 == ((const U8*)s)[2] ) ? \
847 ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 ) \
848 : ( 0x71 == ((const U8*)s)[2] ) ? \
849 ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
850 : ( ( 0x73 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x67 ) ) ) ? 4 : 0 )\
852 : ( 0xDF == ((const U8*)s)[0] ) ? \
853 ( ( 0x56 == ((const U8*)s)[1] ) ? \
854 ( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x44 ) ) ) ? 4 : 0 )\
855 : ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x62, 0x69 ) ) ) ? 4 : 0 )\
856 : ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x73 ) ) ) && ( inRANGE(((const U8*)s)[4], 0x41, 0x4A ) || inRANGE(((const U8*)s)[4], 0x51, 0x59 ) || inRANGE(((const U8*)s)[4], 0x62, 0x6A ) || inRANGE(((const U8*)s)[4], 0x70, 0x73 ) ) ) ? 5 : 0 )
859 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
861 ®charclass_multi_char_folds::multi_char_folds(1)
863 /*** GENERATED CODE ***/
864 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
865 ( ( 0x86 == ((const U8*)s)[1] ) ? \
866 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
867 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
870 /*** GENERATED CODE ***/
871 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
872 ( ( 0x88 == ((const U8*)s)[0] ) ? \
873 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
874 : ( 0x89 == ((const U8*)s)[0] ) ? \
875 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
876 : ( 0x8F == ((const U8*)s)[0] ) ? \
877 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
878 : ( 0x91 == ((const U8*)s)[0] ) ? \
879 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
880 : ( 0xA2 == ((const U8*)s)[0] ) ? \
881 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
882 : ( 0xA3 == ((const U8*)s)[0] ) ? \
883 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
884 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
885 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
886 : ( 0xAB == ((const U8*)s)[0] ) ? \
887 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
888 : ( 0xB4 == ((const U8*)s)[0] ) ? \
889 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
890 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
891 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
892 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
893 ( ( 0x43 == ((const U8*)s)[3] ) ? \
894 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
896 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
897 : ( 0x68 == ((const U8*)s)[1] ) ? \
898 ( ( 0xAF == ((const U8*)s)[2] ) ? \
899 ( ( 0x49 == ((const U8*)s)[3] ) ? \
900 ( ( 0xAF == ((const U8*)s)[4] ) ? \
901 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
902 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
904 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
906 : ( 0xB5 == ((const U8*)s)[0] ) ? \
907 ( ( 0x42 == ((const U8*)s)[1] ) ? \
908 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
909 : ( 0x46 == ((const U8*)s)[1] ) ? \
910 ( ( 0xAF == ((const U8*)s)[2] ) ? \
911 ( ( 0x49 == ((const U8*)s)[3] ) ? \
912 ( ( 0xAF == ((const U8*)s)[4] ) ? \
913 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
914 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
915 : ( 0x62 == ((const U8*)s)[3] ) ? \
916 ( ( 0xAF == ((const U8*)s)[4] ) ? \
917 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 4 )\
918 : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
920 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
921 : ( 0x4A == ((const U8*)s)[1] ) ? \
922 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
923 ( ( 0x43 == ((const U8*)s)[3] ) ? \
924 ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
926 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
927 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
928 : ( 0xB8 == ((const U8*)s)[0] ) ? \
929 ( ( 0x52 == ((const U8*)s)[1] ) ? \
930 ( ( 0x46 == ((const U8*)s)[2] ) ? \
931 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
932 : ( 0x63 == ((const U8*)s)[2] ) ? \
933 ( ( ( ( 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 )\
934 : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
936 : ( 0xBF == ((const U8*)s)[0] ) ? \
937 ( ( inRANGE(((const U8*)s)[1], 0x67, 0x68 ) ) ? \
938 ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
939 : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((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 )\
943 /*** GENERATED CODE ***/
944 #define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) \
945 ( ( 0x81 == ((const U8*)s)[0] ) ? \
946 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
947 : ( 0x86 == ((const U8*)s)[0] ) ? \
948 ( ( 0x86 == ((const U8*)s)[1] ) ? \
949 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
950 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
951 : ( 0x88 == ((const U8*)s)[0] ) ? \
952 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
953 : ( 0x89 == ((const U8*)s)[0] ) ? \
954 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
955 : ( 0x8F == ((const U8*)s)[0] ) ? \
956 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
957 : ( 0x91 == ((const U8*)s)[0] ) ? \
958 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
959 : ( 0xA2 == ((const U8*)s)[0] ) ? \
960 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
961 : ( 0xA3 == ((const U8*)s)[0] ) ? \
962 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
963 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
964 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
965 : ( 0xAB == ((const U8*)s)[0] ) ? \
966 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
967 : ( 0xB4 == ((const U8*)s)[0] ) ? \
968 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
969 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
970 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
971 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
972 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
973 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
974 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
975 : ( 0xB5 == ((const U8*)s)[0] ) ? \
976 ( ( 0x42 == ((const U8*)s)[1] ) ? \
977 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
978 : ( 0x46 == ((const U8*)s)[1] ) ? \
979 ( ( 0xAF == ((const U8*)s)[2] ) ? \
980 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
981 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
982 : ( 0x4A == ((const U8*)s)[1] ) ? \
983 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
984 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
985 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
986 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
987 : ( 0xBF == ((const U8*)s)[0] ) ? \
988 ( ( inRANGE(((const U8*)s)[1], 0x67, 0x68 ) ) ? \
989 ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
990 : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((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 )\
994 /*** GENERATED CODE ***/
995 #define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) \
997 ( ( 0x81 == ((const U8*)s)[0] ) ? \
998 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
999 : ( 0x86 == ((const U8*)s)[0] ) ? \
1000 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1001 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1002 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1003 : ( 0x88 == ((const U8*)s)[0] ) ? \
1004 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1005 : ( 0x89 == ((const U8*)s)[0] ) ? \
1006 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1007 : ( 0x8F == ((const U8*)s)[0] ) ? \
1008 ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1009 : ( 0x91 == ((const U8*)s)[0] ) ? \
1010 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1011 : ( 0xA2 == ((const U8*)s)[0] ) ? \
1012 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
1013 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1014 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1015 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1016 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1017 : ( 0xAB == ((const U8*)s)[0] ) ? \
1018 ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1019 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1020 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1021 ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1022 : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ? \
1023 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1024 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1025 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1026 : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1027 : ( 0xB5 == ((const U8*)s)[0] ) ? \
1028 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1029 ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1030 : ( 0x46 == ((const U8*)s)[1] ) ? \
1031 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1032 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1033 : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1034 : ( 0x4A == ((const U8*)s)[1] ) ? \
1035 ( ( 0xB1 == ((const U8*)s)[2] ) ? \
1036 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1037 : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1038 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1041 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1042 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1043 : ( 0x86 == ((const U8*)s)[0] ) ? \
1044 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1045 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1046 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1047 : ( 0x88 == ((const U8*)s)[0] ) ? \
1048 ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1049 : ( 0x89 == ((const U8*)s)[0] ) ? \
1050 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1051 : ( 0x91 == ((const U8*)s)[0] ) ? \
1052 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1053 : ( 0xA2 == ((const U8*)s)[0] ) ? \
1054 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
1055 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1056 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1057 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1058 ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1059 : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1061 ( ( 0x86 == ((const U8*)s)[0] ) ? \
1062 ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1063 : ( ( 0xA2 == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ) ? 2 : 0 )\
1067 /*** GENERATED CODE ***/
1068 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
1070 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1071 ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1072 : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
1073 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
1076 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1078 ®charclass_multi_char_folds::multi_char_folds(0)
1080 /*** GENERATED CODE ***/
1081 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
1083 ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
1084 ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ? \
1085 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1086 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1087 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1089 ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
1090 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1091 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1095 FOLDS_TO_MULTI: characters that fold to multi-char strings
1097 \p{_Perl_Folds_To_Multi_Char}
1099 /*** GENERATED CODE ***/
1100 #define is_FOLDS_TO_MULTI_utf8(s) \
1101 ( ( 0x8A == ((const U8*)s)[0] ) ? \
1102 ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1103 : ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB3, 0xB4 ) ) ?\
1104 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1105 : ( 0x8E == ((const U8*)s)[0] ) ? \
1106 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1107 : ( 0xB8 == ((const U8*)s)[0] ) ? \
1108 ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1109 : ( 0xBF == ((const U8*)s)[0] ) ? \
1110 ( ( 0x63 == ((const U8*)s)[1] ) ? \
1111 ( ( inRANGE(((const U8*)s)[2], 0x65, 0x69 ) || 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )\
1112 : ( 0x69 == ((const U8*)s)[1] ) ? \
1113 ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x65 == ((const U8*)s)[2] ) ? 3 : 0 )\
1114 : ( 0x70 == ((const U8*)s)[1] ) ? \
1115 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x73 ) ) ? 3 : 0 )\
1116 : ( 0x71 == ((const U8*)s)[1] ) ? \
1117 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) || 0x59 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x63 ) || inRANGE(((const U8*)s)[2], 0x65, 0x66 ) || 0x70 == ((const U8*)s)[2] ) ? 3 : 0 )\
1118 : ( 0x72 == ((const U8*)s)[1] ) ? \
1119 ( ( inRANGE(((const U8*)s)[2], 0x43, 0x45 ) || inRANGE(((const U8*)s)[2], 0x47, 0x48 ) || 0x53 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x65, 0x66 ) ) ? 3 : 0 )\
1120 : ( ( 0x73 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x43, 0x45 ) || inRANGE(((const U8*)s)[2], 0x47, 0x48 ) || 0x59 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x63 ) || inRANGE(((const U8*)s)[2], 0x65, 0x66 ) || 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1121 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) || inRANGE(((const U8*)s)[3], 0x62, 0x66 ) ) ) ? 4 : 0 )
1124 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1126 \p{_Perl_Problematic_Locale_Folds}
1128 /*** GENERATED CODE ***/
1129 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
1130 ( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xAD == ((const U8*)s)[0] || 0xBD == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
1131 : ( 0x80 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x8A, 0x8B ) ) ?\
1132 ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) ? 2 : 0 )\
1133 : ( 0x8D == ((const U8*)s)[0] ) ? \
1134 ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 ) \
1135 : ( 0x8E == ((const U8*)s)[0] ) ? \
1136 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1137 : ( 0x8F == ((const U8*)s)[0] ) ? \
1138 ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1139 : ( 0x9C == ((const U8*)s)[0] ) ? \
1140 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1141 : ( 0xAF == ((const U8*)s)[0] ) ? \
1142 ( ( 0x48 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1143 : ( inRANGE(((const U8*)s)[0], 0xB3, 0xB4 ) ) ? \
1144 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1145 : ( 0xBF == ((const U8*)s)[0] ) ? \
1146 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x65, 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1147 : ( 0xCA == ((const U8*)s)[0] ) ? \
1148 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
1149 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
1151 /*** GENERATED CODE ***/
1152 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
1153 ( cp <= 0xFF || ( 0xFF < cp && \
1154 ( 0x130 == cp || ( 0x130 < cp && \
1155 ( 0x131 == cp || ( 0x131 < cp && \
1156 ( 0x149 == cp || ( 0x149 < cp && \
1157 ( 0x178 == cp || ( 0x178 < cp && \
1158 ( 0x17F == cp || ( 0x17F < cp && \
1159 ( 0x1F0 == cp || ( 0x1F0 < cp && \
1160 ( 0x307 == cp || ( 0x307 < cp && \
1161 ( 0x39C == cp || ( 0x39C < cp && \
1162 ( 0x3BC == cp || ( 0x3BC < cp && \
1163 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
1164 ( 0x1E9E == cp || ( 0x1E9E < cp && \
1165 ( 0x212A == cp || ( 0x212A < cp && \
1166 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1169 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1171 \p{_Perl_Problematic_Locale_Foldeds_Start}
1173 /*** GENERATED CODE ***/
1174 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
1175 ( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xAD == ((const U8*)s)[0] || 0xBD == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
1176 : ( 0x80 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x8A, 0x8B ) ) ?\
1177 ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x73 ) ) ? 2 : 0 )\
1178 : ( 0x8D == ((const U8*)s)[0] ) ? \
1179 ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 ) \
1180 : ( 0x8E == ((const U8*)s)[0] ) ? \
1181 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1182 : ( 0x8F == ((const U8*)s)[0] ) ? \
1183 ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1184 : ( 0x9C == ((const U8*)s)[0] ) ? \
1185 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1186 : ( 0xAB == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB3, 0xB4 ) ) ?\
1187 ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1188 : ( 0xBF == ((const U8*)s)[0] ) ? \
1189 ( ( ( 0x63 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x65, 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1190 : ( 0xCA == ((const U8*)s)[0] ) ? \
1191 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
1192 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
1194 /*** GENERATED CODE ***/
1195 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
1196 ( cp <= 0xFF || ( 0xFF < cp && \
1197 ( 0x130 == cp || ( 0x130 < cp && \
1198 ( 0x131 == cp || ( 0x131 < cp && \
1199 ( 0x149 == cp || ( 0x149 < cp && \
1200 ( 0x178 == cp || ( 0x178 < cp && \
1201 ( 0x17F == cp || ( 0x17F < cp && \
1202 ( 0x1F0 == cp || ( 0x1F0 < cp && \
1203 ( 0x2BC == cp || ( 0x2BC < cp && \
1204 ( 0x39C == cp || ( 0x39C < cp && \
1205 ( 0x3BC == cp || ( 0x3BC < cp && \
1206 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
1207 ( 0x1E9E == cp || ( 0x1E9E < cp && \
1208 ( 0x212A == cp || ( 0x212A < cp && \
1209 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1212 PATWS: pattern white space
1216 /*** GENERATED CODE ***/
1217 #define is_PATWS_safe(s,e,is_utf8) \
1218 ( ( LIKELY((e) > (s)) ) ? \
1219 ( ( 0x05 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] || 0x40 == ((const U8*)s)[0] ) ? 1\
1220 : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
1221 ( ( inRANGE(((const U8*)s)[2], 0x55, 0x56 ) ) ? 3 : 0 ) \
1222 : ( ( 0x42 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 ) : 0 )\
1225 /*** GENERATED CODE ***/
1226 #define is_PATWS_cp(cp) \
1227 ( 0x05 == cp || ( 0x05 < cp && \
1228 ( inRANGE(cp, 0x0B, 0x0D) || ( 0x0D < cp && \
1229 ( 0x15 == cp || ( 0x15 < cp && \
1230 ( 0x25 == cp || ( 0x25 < cp && \
1231 ( 0x40 == cp || ( 0x40 < cp && \
1232 ( 0x200E == cp || ( 0x200E < cp && \
1233 ( 0x200F == cp || ( 0x200F < cp && \
1234 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1236 #endif /* EBCDIC 1047 */
1238 #if 'A' == 193 /* EBCDIC 037 */ \
1239 && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
1240 && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
1241 && '$' == 91 && '@' == 124 && '`' == 121 && '\n' == 37
1243 LNBREAK: Line Break: \R
1245 "\x0D\x0A" # CRLF - Network (Windows) line ending
1248 /*** GENERATED CODE ***/
1249 #define is_LNBREAK_safe(s,e,is_utf8) \
1251 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1252 : ( 0x0D == ((const U8*)s)[0] ) ? \
1253 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
1254 : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
1256 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1257 : ( 0x0D == ((const U8*)s)[0] ) ? \
1258 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
1261 ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1264 /*** GENERATED CODE ***/
1265 #define is_LNBREAK_utf8_safe(s,e) \
1267 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1268 : ( 0x0D == ((const U8*)s)[0] ) ? \
1269 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
1270 : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )\
1272 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1273 : ( 0x0D == ((const U8*)s)[0] ) ? \
1274 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
1277 ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1280 /*** GENERATED CODE ***/
1281 #define is_LNBREAK_latin1_safe(s,e) \
1283 ( ( inRANGE(((const U8*)s)[0], 0x0B, 0x0C ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1284 : ( 0x0D == ((const U8*)s)[0] ) ? \
1285 ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 ) \
1288 ( inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1292 HORIZWS: Horizontal Whitespace: \h \H
1296 /*** GENERATED CODE ***/
1297 #define is_HORIZWS_high(s) \
1298 ( ( 0xBD == ((const U8*)s)[0] ) ? \
1299 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1300 : ( 0xCA == ((const U8*)s)[0] ) ? \
1301 ( ( 0x41 == ((const U8*)s)[1] ) ? \
1302 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
1303 : ( 0x42 == ((const U8*)s)[1] ) ? \
1304 ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1305 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1306 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1308 /*** GENERATED CODE ***/
1309 #define is_HORIZWS_cp_high(cp) \
1310 ( 0x1680 == cp || ( 0x1680 < cp && \
1311 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp && \
1312 ( 0x202F == cp || ( 0x202F < cp && \
1313 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
1316 VERTWS: Vertical Whitespace: \v \V
1320 /*** GENERATED CODE ***/
1321 #define is_VERTWS_high(s) \
1322 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 )
1324 /*** GENERATED CODE ***/
1325 #define is_VERTWS_cp_high(cp) \
1326 ( 0x2028 == cp || 0x2029 == cp )
1329 XDIGIT: Hexadecimal digits
1333 /*** GENERATED CODE ***/
1334 #define is_XDIGIT_high(s) \
1335 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\
1336 ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x67 ) ) ? 4 : 0 )\
1337 : ( ( inRANGE(((const U8*)s)[2], 0x67, 0x68 ) ) && ( inRANGE(((const U8*)s)[3], 0x42, 0x47 ) ) ) ? 4 : 0 ) : 0 )
1339 /*** GENERATED CODE ***/
1340 #define is_XDIGIT_cp_high(cp) \
1341 ( inRANGE(cp, 0xFF10, 0xFF19) || ( 0xFF19 < cp && \
1342 ( inRANGE(cp, 0xFF21, 0xFF26) || inRANGE(cp, 0xFF41, 0xFF46) ) ) )
1345 XPERLSPACE: \p{XPerlSpace}
1349 /*** GENERATED CODE ***/
1350 #define is_XPERLSPACE_high(s) \
1351 ( ( 0xBD == ((const U8*)s)[0] ) ? \
1352 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1353 : ( 0xCA == ((const U8*)s)[0] ) ? \
1354 ( ( 0x41 == ((const U8*)s)[1] ) ? \
1355 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
1356 : ( 0x42 == ((const U8*)s)[1] ) ? \
1357 ( ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1358 : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1359 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1361 /*** GENERATED CODE ***/
1362 #define is_XPERLSPACE_cp_high(cp) \
1363 ( 0x1680 == cp || ( 0x1680 < cp && \
1364 ( inRANGE(cp, 0x2000, 0x200A) || ( 0x200A < cp && \
1365 ( 0x2028 == cp || ( 0x2028 < cp && \
1366 ( 0x2029 == cp || ( 0x2029 < cp && \
1367 ( 0x202F == cp || ( 0x202F < cp && \
1368 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
1371 NONCHAR: Non character code points
1375 /*** GENERATED CODE ***/
1376 #define is_NONCHAR_utf8_safe(s,e) \
1377 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
1378 ( ( 0x72 == ((const U8*)s)[1] ) ? \
1379 ( ( 0x55 == ((const U8*)s)[2] ) ? \
1380 ( ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x72 ) ) ? 4 : 0 )\
1381 : ( 0x56 == ((const U8*)s)[2] ) ? \
1382 ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
1383 : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x71, 0x72 ) ) ) ? 4 : 0 )\
1385 : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
1386 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x71, 0x72 ) ) ) ? 4 : 0 )\
1387 : ( 0xED == ((const U8*)s)[0] ) ? \
1388 ( ( ( ( ( ((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(((const U8*)s)[4], 0x71, 0x72 ) ) ) ? 5 : 0 )\
1389 : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( inRANGE(((const U8*)s)[4], 0x71, 0x72 ) ) ) ? 5 : 0 ) : 0 )
1392 SURROGATE: Surrogate code points
1396 /*** GENERATED CODE ***/
1397 #define is_SURROGATE_utf8_safe(s,e) \
1398 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( inRANGE(((const U8*)s)[1], 0x64, 0x65 ) ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x72 ) ) ) ? 4 : 0 )
1401 QUOTEMETA: Meta-characters that \Q should quote
1405 /*** GENERATED CODE ***/
1406 #define is_QUOTEMETA_high_part0(s) \
1407 ( ( 0x51 == ((const U8*)s)[1] ) ? \
1408 ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1409 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1412 /*** GENERATED CODE ***/
1413 #define is_QUOTEMETA_high_part1(s) \
1414 ( ( 0xBD == ((const U8*)s)[0] ) ? \
1415 ( ( 0x62 == ((const U8*)s)[1] ) ? \
1416 ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 ) \
1417 : ( ( 0x70 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x62, 0x63 ) ) ) ? 3 : 0 )\
1418 : ( 0xBE == ((const U8*)s)[0] ) ? \
1419 ( ( ( 0x41 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x52, 0x55 ) ) ) ? 3 : 0 )\
1420 : ( 0xCA == ((const U8*)s)[0] ) ? \
1421 ( ( 0x41 == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x54, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ?\
1422 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
1423 : ( 0x42 == ((const U8*)s)[1] ) ? \
1424 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x71 ) ) ? 3 : 0 )\
1425 : ( 0x43 == ((const U8*)s)[1] ) ? \
1426 ( ( inRANGE(((const U8*)s)[2], 0x42, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x63, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
1427 : ( 0x44 == ((const U8*)s)[1] ) ? \
1428 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) ) ? 3 : 0 )\
1429 : ( ( 0x53 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
1430 : ( 0xCB == ((const U8*)s)[0] ) ? \
1431 ( ( inRANGE(((const U8*)s)[1], 0x41, 0x43 ) || inRANGE(((const U8*)s)[1], 0x49, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x68 ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ?\
1432 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
1433 : ( 0x69 == ((const U8*)s)[1] ) ? \
1434 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x63 ) ) ? 3 : 0 )\
1435 : ( ( 0x6A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
1436 : ( 0xCC == ((const U8*)s)[0] ) ? \
1437 ( ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
1438 : ( 0xCD == ((const U8*)s)[0] ) ? \
1439 ( ( ( inRANGE(((const U8*)s)[1], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ) ? 3 : 0 )\
1440 : ( 0xCE == ((const U8*)s)[0] ) ? \
1441 ( ( 0x41 == ((const U8*)s)[1] ) ? \
1442 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) || inRANGE(((const U8*)s)[2], 0x49, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
1443 : ( 0x42 == ((const U8*)s)[1] ) ? \
1444 ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
1445 : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1446 : ( 0xDD == ((const U8*)s)[0] ) ? \
1447 ( ( 0x72 == ((const U8*)s)[1] ) ? \
1448 ( ( 0x4A == ((const U8*)s)[2] ) ? \
1449 ( ( inRANGE(((const U8*)s)[3], 0x71, 0x72 ) ) ? 4 : 0 ) \
1450 : ( 0x57 == ((const U8*)s)[2] ) ? \
1451 ( ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x56 ) ) ? 4 : 0 )\
1452 : ( 0x59 == ((const U8*)s)[2] ) ? \
1453 ( ( inRANGE(((const U8*)s)[3], 0x46, 0x47 ) ) ? 4 : 0 ) \
1454 : ( 0x65 == ((const U8*)s)[2] ) ? \
1455 ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1456 : ( 0x70 == ((const U8*)s)[2] ) ? \
1457 ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1458 : ( ( 0x72 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x57, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x66 ) ) ) ? 4 : 0 )\
1460 : ( 0xDF == ((const U8*)s)[0] ) ? \
1461 ( ( 0x56 == ((const U8*)s)[1] ) ? \
1462 ( ( ( 0x46 == ((const U8*)s)[2] ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x44 ) ) ) ? 4 : 0 )\
1463 : ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x68 ) ) ) ? 4 : 0 )\
1464 : ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( inRANGE(((const U8*)s)[2], 0x41, 0x44 ) ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x4A ) || inRANGE(((const U8*)s)[3], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x6A ) || inRANGE(((const U8*)s)[3], 0x70, 0x72 ) ) ) && ( inRANGE(((const U8*)s)[4], 0x41, 0x4A ) || inRANGE(((const U8*)s)[4], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[4] || inRANGE(((const U8*)s)[4], 0x62, 0x6A ) || inRANGE(((const U8*)s)[4], 0x70, 0x72 ) ) ) ? 5 : 0 )
1467 /*** GENERATED CODE ***/
1468 #define is_QUOTEMETA_high(s) \
1469 ( ( 0xAF == ((const U8*)s)[0] ) ? \
1470 ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1471 : ( 0xB7 == ((const U8*)s)[0] ) ? \
1472 ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1473 : ( 0xBC == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
1476 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1478 ®charclass_multi_char_folds::multi_char_folds(1)
1480 /*** GENERATED CODE ***/
1481 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) \
1482 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1483 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1484 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
1487 /*** GENERATED CODE ***/
1488 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) \
1489 ( ( 0x88 == ((const U8*)s)[0] ) ? \
1490 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1491 : ( 0x89 == ((const U8*)s)[0] ) ? \
1492 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1493 : ( 0x8E == ((const U8*)s)[0] ) ? \
1494 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1495 : ( 0x91 == ((const U8*)s)[0] ) ? \
1496 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1497 : ( 0xA2 == ((const U8*)s)[0] ) ? \
1498 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
1499 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1500 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1501 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1502 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1503 : ( 0xAA == ((const U8*)s)[0] ) ? \
1504 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1505 : ( 0xB3 == ((const U8*)s)[0] ) ? \
1506 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1507 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1508 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
1509 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1510 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1511 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1513 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1514 : ( 0x67 == ((const U8*)s)[1] ) ? \
1515 ( ( 0xAD == ((const U8*)s)[2] ) ? \
1516 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1517 ( ( 0xAD == ((const U8*)s)[4] ) ? \
1518 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
1519 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1521 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1523 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1524 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1525 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1526 : ( 0x46 == ((const U8*)s)[1] ) ? \
1527 ( ( 0xAD == ((const U8*)s)[2] ) ? \
1528 ( ( 0x49 == ((const U8*)s)[3] ) ? \
1529 ( ( 0xAD == ((const U8*)s)[4] ) ? \
1530 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 0 )\
1531 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1532 : ( 0x5F == ((const U8*)s)[3] ) ? \
1533 ( ( 0xAD == ((const U8*)s)[4] ) ? \
1534 ( ( inRANGE(((const U8*)s)[5], 0x41, 0x42 ) ) ? 6 : 4 )\
1535 : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1537 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1538 : ( 0x4A == ((const U8*)s)[1] ) ? \
1539 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1540 ( ( 0x43 == ((const U8*)s)[3] ) ? \
1541 ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1543 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1544 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1545 : ( 0xB7 == ((const U8*)s)[0] ) ? \
1546 ( ( 0x52 == ((const U8*)s)[1] ) ? \
1547 ( ( 0x46 == ((const U8*)s)[2] ) ? \
1548 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1549 : ( 0x62 == ((const U8*)s)[2] ) ? \
1550 ( ( ( ( 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 )\
1551 : ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1553 : ( 0xBF == ((const U8*)s)[0] ) ? \
1554 ( ( inRANGE(((const U8*)s)[1], 0x66, 0x67 ) ) ? \
1555 ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1556 : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE(((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 )\
1560 /*** GENERATED CODE ***/
1561 #define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) \
1562 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1563 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1564 : ( 0x86 == ((const U8*)s)[0] ) ? \
1565 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1566 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1567 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1568 : ( 0x88 == ((const U8*)s)[0] ) ? \
1569 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1570 : ( 0x89 == ((const U8*)s)[0] ) ? \
1571 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1572 : ( 0x8E == ((const U8*)s)[0] ) ? \
1573 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1574 : ( 0x91 == ((const U8*)s)[0] ) ? \
1575 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1576 : ( 0xA2 == ((const U8*)s)[0] ) ? \
1577 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
1578 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1579 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1580 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1581 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1582 : ( 0xAA == ((const U8*)s)[0] ) ? \
1583 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1584 : ( 0xB3 == ((const U8*)s)[0] ) ? \
1585 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1586 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1587 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
1588 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1589 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1590 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1591 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1592 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1593 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1594 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1595 : ( 0x46 == ((const U8*)s)[1] ) ? \
1596 ( ( 0xAD == ((const U8*)s)[2] ) ? \
1597 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 ) \
1598 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1599 : ( 0x4A == ((const U8*)s)[1] ) ? \
1600 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1601 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1602 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1603 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1604 : ( 0xBF == ((const U8*)s)[0] ) ? \
1605 ( ( inRANGE(((const U8*)s)[1], 0x66, 0x67 ) ) ? \
1606 ( ( ( ( inRANGE(((const U8*)s)[2], 0x41, 0x48 ) ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1607 : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( inRANGE(((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 )\
1611 /*** GENERATED CODE ***/
1612 #define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) \
1614 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1615 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1616 : ( 0x86 == ((const U8*)s)[0] ) ? \
1617 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1618 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1619 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1620 : ( 0x88 == ((const U8*)s)[0] ) ? \
1621 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1622 : ( 0x89 == ((const U8*)s)[0] ) ? \
1623 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1624 : ( 0x8E == ((const U8*)s)[0] ) ? \
1625 ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1626 : ( 0x91 == ((const U8*)s)[0] ) ? \
1627 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1628 : ( 0xA2 == ((const U8*)s)[0] ) ? \
1629 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
1630 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1631 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1632 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1633 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1634 : ( 0xAA == ((const U8*)s)[0] ) ? \
1635 ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1636 : ( 0xB3 == ((const U8*)s)[0] ) ? \
1637 ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ? \
1638 ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1639 : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ? \
1640 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1641 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1642 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1643 : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1644 : ( 0xB4 == ((const U8*)s)[0] ) ? \
1645 ( ( 0x42 == ((const U8*)s)[1] ) ? \
1646 ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1647 : ( 0x46 == ((const U8*)s)[1] ) ? \
1648 ( ( 0xAD == ((const U8*)s)[2] ) ? \
1649 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 ) \
1650 : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1651 : ( 0x4A == ((const U8*)s)[1] ) ? \
1652 ( ( 0xAF == ((const U8*)s)[2] ) ? \
1653 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 ) \
1654 : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1655 : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1658 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1659 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1660 : ( 0x86 == ((const U8*)s)[0] ) ? \
1661 ( ( 0x86 == ((const U8*)s)[1] ) ? \
1662 ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1663 : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1664 : ( 0x88 == ((const U8*)s)[0] ) ? \
1665 ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1666 : ( 0x89 == ((const U8*)s)[0] ) ? \
1667 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1668 : ( 0x91 == ((const U8*)s)[0] ) ? \
1669 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1670 : ( 0xA2 == ((const U8*)s)[0] ) ? \
1671 ( ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ? 2 : 0 ) \
1672 : ( 0xA3 == ((const U8*)s)[0] ) ? \
1673 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1674 : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ? \
1675 ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1676 : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1678 ( ( 0x86 == ((const U8*)s)[0] ) ? \
1679 ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1680 : ( ( 0xA2 == ((const U8*)s)[0] ) && ( inRANGE(((const U8*)s)[1], 0xA2, 0xA3 ) ) ) ? 2 : 0 )\
1684 /*** GENERATED CODE ***/
1685 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e) \
1687 ( ( 0x81 == ((const U8*)s)[0] ) ? \
1688 ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1689 : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
1690 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
1693 MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1695 ®charclass_multi_char_folds::multi_char_folds(0)
1697 /*** GENERATED CODE ***/
1698 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e) \
1700 ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
1701 ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ? \
1702 ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1703 : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1704 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1706 ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ? \
1707 ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1708 : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1712 FOLDS_TO_MULTI: characters that fold to multi-char strings
1714 \p{_Perl_Folds_To_Multi_Char}
1716 /*** GENERATED CODE ***/
1717 #define is_FOLDS_TO_MULTI_utf8(s) \
1718 ( ( 0x80 == ((const U8*)s)[0] ) ? \
1719 ( ( 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1720 : ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB2, 0xB3 ) ) ?\
1721 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1722 : ( 0x8D == ((const U8*)s)[0] ) ? \
1723 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1724 : ( 0xB7 == ((const U8*)s)[0] ) ? \
1725 ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1726 : ( 0xBF == ((const U8*)s)[0] ) ? \
1727 ( ( 0x62 == ((const U8*)s)[1] ) ? \
1728 ( ( inRANGE(((const U8*)s)[2], 0x64, 0x68 ) || 0x71 == ((const U8*)s)[2] ) ? 3 : 0 )\
1729 : ( 0x68 == ((const U8*)s)[1] ) ? \
1730 ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ? 3 : 0 )\
1731 : ( 0x6A == ((const U8*)s)[1] ) ? \
1732 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x62, 0x6A ) || inRANGE(((const U8*)s)[2], 0x70, 0x72 ) ) ? 3 : 0 )\
1733 : ( 0x70 == ((const U8*)s)[1] ) ? \
1734 ( ( inRANGE(((const U8*)s)[2], 0x41, 0x4A ) || inRANGE(((const U8*)s)[2], 0x51, 0x56 ) || 0x59 == ((const U8*)s)[2] || 0x5F == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x64, 0x65 ) || 0x6A == ((const U8*)s)[2] ) ? 3 : 0 )\
1735 : ( 0x71 == ((const U8*)s)[1] ) ? \
1736 ( ( inRANGE(((const U8*)s)[2], 0x43, 0x45 ) || inRANGE(((const U8*)s)[2], 0x47, 0x48 ) || 0x53 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x5F == ((const U8*)s)[2] || inRANGE(((const U8*)s)[2], 0x64, 0x65 ) ) ? 3 : 0 )\
1737 : ( ( 0x72 == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xDE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x59 || ((const U8*)s)[2] == 0x5F || ( ( ((const U8*)s)[2] & 0xF7 ) == 0x62 ) ) ) ? 3 : 0 )\
1738 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) || 0x5F == ((const U8*)s)[3] || inRANGE(((const U8*)s)[3], 0x62, 0x65 ) ) ) ? 4 : 0 )
1741 PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1743 \p{_Perl_Problematic_Locale_Folds}
1745 /*** GENERATED CODE ***/
1746 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s) \
1747 ( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x5E ) || inRANGE(((const U8*)s)[0], 0x60, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xB0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xBA, 0xBB ) || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
1748 : ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
1749 ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ? 2 : 0 )\
1750 : ( 0x8C == ((const U8*)s)[0] ) ? \
1751 ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 ) \
1752 : ( 0x8D == ((const U8*)s)[0] ) ? \
1753 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1754 : ( 0x8E == ((const U8*)s)[0] ) ? \
1755 ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1756 : ( 0x9B == ((const U8*)s)[0] ) ? \
1757 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1758 : ( 0xAD == ((const U8*)s)[0] ) ? \
1759 ( ( 0x48 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1760 : ( inRANGE(((const U8*)s)[0], 0xB2, 0xB3 ) ) ? \
1761 ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1762 : ( 0xBF == ((const U8*)s)[0] ) ? \
1763 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x64, 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1764 : ( 0xCA == ((const U8*)s)[0] ) ? \
1765 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
1766 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
1768 /*** GENERATED CODE ***/
1769 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp) \
1770 ( cp <= 0xFF || ( 0xFF < cp && \
1771 ( 0x130 == cp || ( 0x130 < cp && \
1772 ( 0x131 == cp || ( 0x131 < cp && \
1773 ( 0x149 == cp || ( 0x149 < cp && \
1774 ( 0x178 == cp || ( 0x178 < cp && \
1775 ( 0x17F == cp || ( 0x17F < cp && \
1776 ( 0x1F0 == cp || ( 0x1F0 < cp && \
1777 ( 0x307 == cp || ( 0x307 < cp && \
1778 ( 0x39C == cp || ( 0x39C < cp && \
1779 ( 0x3BC == cp || ( 0x3BC < cp && \
1780 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
1781 ( 0x1E9E == cp || ( 0x1E9E < cp && \
1782 ( 0x212A == cp || ( 0x212A < cp && \
1783 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1786 PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1788 \p{_Perl_Problematic_Locale_Foldeds_Start}
1790 /*** GENERATED CODE ***/
1791 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s) \
1792 ( ( ( ((const U8*)s)[0] <= 0x40 ) || inRANGE(((const U8*)s)[0], 0x4B, 0x50 ) || inRANGE(((const U8*)s)[0], 0x5A, 0x5E ) || inRANGE(((const U8*)s)[0], 0x60, 0x61 ) || inRANGE(((const U8*)s)[0], 0x6B, 0x6F ) || inRANGE(((const U8*)s)[0], 0x79, 0x7F ) || inRANGE(((const U8*)s)[0], 0x81, 0x89 ) || inRANGE(((const U8*)s)[0], 0x91, 0x99 ) || inRANGE(((const U8*)s)[0], 0xA1, 0xA9 ) || 0xB0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xBA, 0xBB ) || inRANGE(((const U8*)s)[0], 0xC0, 0xC9 ) || inRANGE(((const U8*)s)[0], 0xD0, 0xD9 ) || 0xE0 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xE2, 0xE9 ) || inRANGE(((const U8*)s)[0], 0xF0, 0xF9 ) || 0xFF == ((const U8*)s)[0] ) ? 1\
1793 : ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
1794 ( ( inRANGE(((const U8*)s)[1], 0x41, 0x4A ) || inRANGE(((const U8*)s)[1], 0x51, 0x59 ) || 0x5F == ((const U8*)s)[1] || inRANGE(((const U8*)s)[1], 0x62, 0x6A ) || inRANGE(((const U8*)s)[1], 0x70, 0x72 ) ) ? 2 : 0 )\
1795 : ( 0x8C == ((const U8*)s)[0] ) ? \
1796 ( ( inRANGE(((const U8*)s)[1], 0x57, 0x58 ) ) ? 2 : 0 ) \
1797 : ( 0x8D == ((const U8*)s)[0] ) ? \
1798 ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1799 : ( 0x8E == ((const U8*)s)[0] ) ? \
1800 ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1801 : ( 0x9B == ((const U8*)s)[0] ) ? \
1802 ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 ) \
1803 : ( 0xAA == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0xB2, 0xB3 ) ) ?\
1804 ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 ) \
1805 : ( 0xBF == ((const U8*)s)[0] ) ? \
1806 ( ( ( 0x62 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x64, 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1807 : ( 0xCA == ((const U8*)s)[0] ) ? \
1808 ( ( ( 0x4A == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x51, 0x52 ) ) ) ? 3 : 0 )\
1809 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( inRANGE(((const U8*)s)[3], 0x41, 0x47 ) ) ) ? 4 : 0 )
1811 /*** GENERATED CODE ***/
1812 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp) \
1813 ( cp <= 0xFF || ( 0xFF < cp && \
1814 ( 0x130 == cp || ( 0x130 < cp && \
1815 ( 0x131 == cp || ( 0x131 < cp && \
1816 ( 0x149 == cp || ( 0x149 < cp && \
1817 ( 0x178 == cp || ( 0x178 < cp && \
1818 ( 0x17F == cp || ( 0x17F < cp && \
1819 ( 0x1F0 == cp || ( 0x1F0 < cp && \
1820 ( 0x2BC == cp || ( 0x2BC < cp && \
1821 ( 0x39C == cp || ( 0x39C < cp && \
1822 ( 0x3BC == cp || ( 0x3BC < cp && \
1823 ( inRANGE(cp, 0x1E96, 0x1E9A) || ( 0x1E9A < cp && \
1824 ( 0x1E9E == cp || ( 0x1E9E < cp && \
1825 ( 0x212A == cp || ( 0x212A < cp && \
1826 ( 0x212B == cp || inRANGE(cp, 0xFB00, 0xFB06) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1829 PATWS: pattern white space
1833 /*** GENERATED CODE ***/
1834 #define is_PATWS_safe(s,e,is_utf8) \
1835 ( ( LIKELY((e) > (s)) ) ? \
1836 ( ( 0x05 == ((const U8*)s)[0] || inRANGE(((const U8*)s)[0], 0x0B, 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] || 0x40 == ((const U8*)s)[0] ) ? 1\
1837 : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
1838 ( ( inRANGE(((const U8*)s)[2], 0x55, 0x56 ) ) ? 3 : 0 ) \
1839 : ( ( 0x42 == ((const U8*)s)[1] ) && ( inRANGE(((const U8*)s)[2], 0x49, 0x4A ) ) ) ? 3 : 0 ) : 0 )\
1842 /*** GENERATED CODE ***/
1843 #define is_PATWS_cp(cp) \
1844 ( 0x05 == cp || ( 0x05 < cp && \
1845 ( inRANGE(cp, 0x0B, 0x0D) || ( 0x0D < cp && \
1846 ( 0x15 == cp || ( 0x15 < cp && \
1847 ( 0x25 == cp || ( 0x25 < cp && \
1848 ( 0x40 == cp || ( 0x40 < cp && \
1849 ( 0x200E == cp || ( 0x200E < cp && \
1850 ( 0x200F == cp || ( 0x200F < cp && \
1851 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1853 #endif /* EBCDIC 037 */
1855 #endif /* PERL_REGCHARCLASS_H_ */
1858 * 73902d92e2f05c2b707351006727708a3dc043d118f05aee169f70c117489d61 lib/Unicode/UCD.pm
1859 * 5e91b649379ec79af7cfb6b09410a24557cba4c6d733cd0a2b8a78a1448736d2 lib/unicore/ArabicShaping.txt
1860 * f5feb19cd084b2b1568fbc0f94f4b4b54941406e7fb36c7570f8352fd5022dbe lib/unicore/BidiBrackets.txt
1861 * e6cbd8ffe94f2e0fbfa6695d6c06c1e72eef7d3aa93cb6329d111285198b5e62 lib/unicore/BidiMirroring.txt
1862 * a28b205afe8625fffdb6544a5fe14cf02b91493d9900f07820fa2102a17548f7 lib/unicore/Blocks.txt
1863 * 9c772627c6ee77eea6a17b42927b8ee28ca05dc65d6a511062104baaf3d12294 lib/unicore/CaseFolding.txt
1864 * abc8394c5bde62453118b00c1c5842160a04d7fffb2e829ee5426b846596d081 lib/unicore/CompositionExclusions.txt
1865 * 2fc081011d8fabaf7cf4937732dd5a6d6a57e492c43f3adfeded513387ee0ec3 lib/unicore/DAge.txt
1866 * a6eb7a8671fb532fbd88c37fd7b20b5b2e7dbfc8b121f74c14abe2947db0da68 lib/unicore/DCoreProperties.txt
1867 * 92dcdda84142194a1596f22180fcdf8c0e7f86897f09cc9203c7dc636c549f5f lib/unicore/DNormalizationProps.txt
1868 * 904500178b2e752635bef27aaed3a2a3718a100bce35ff96b3890be7a8315d8f lib/unicore/EastAsianWidth.txt
1869 * 1989b03d93023d8f5cc33eebf0d2ea80c8bd8f8c97843059ea039acb582c2078 lib/unicore/EmojiData.txt
1870 * d7930c2a7318e66b4ba756d5e5b41fbc586c2ad43d450ae9d320a758510bae2e lib/unicore/EquivalentUnifiedIdeograph.txt
1871 * 8606af08712a8c18fe268d418e2e5a87eddee6e190cce4c2d5a76b4fadf035e8 lib/unicore/HangulSyllableType.txt
1872 * 49a1bf18b048454154881f6a8a605b5e2fc73e85fcc4df1cb26d52e8c2aeb9bf lib/unicore/IndicPositionalCategory.txt
1873 * 1b6f3ef6e00e5b2e2a93d2d3c954ca1cce368599c5f11874cd0f0ce222d4637b lib/unicore/IndicSyllabicCategory.txt
1874 * 285c5c1ae458bc3ccd6a1398a94d2d67ce6bc1d7fc0f098762836050345e9434 lib/unicore/Jamo.txt
1875 * 961f842fc70b5afd1d82c6645e68c10d1f701382aed38ae38cb2ff27f671903c lib/unicore/LineBreak.txt
1876 * ff61a0687d2f32c0dd1094254b8bde967883b43c2d4d50fd17531d498e41ab2c lib/unicore/NameAliases.txt
1877 * d3eb9a288ebeaf9de1237989f490705e287b6f610b59d2459fb1b7c2d8e39c39 lib/unicore/NamedSequences.txt
1878 * d30d3ee430cf3527449d024954f053e419fa4aa2246eb59e5cd8d621af0c4b3f lib/unicore/PropList.txt
1879 * efce54f7c715a332c19b3d14c6a0eea30c6cde91caf6ff0d21c755be933736f4 lib/unicore/PropValueAliases.txt
1880 * d3cc3f9f0b6a8f0b7ef1d6ef202675426c28f4a75de01fc69ed977a93a00982b lib/unicore/PropertyAliases.txt
1881 * 3746848c181b5dbc1e614dfac9b8a5e3568e6525c693ac14e692ac55dec57e91 lib/unicore/ScriptExtensions.txt
1882 * e6313a8edfd24f36c7a006fbcf1d1b7245b5dd009c6dde80441f0da08b822c43 lib/unicore/Scripts.txt
1883 * 817ce2e9edca8e075a153f54b8f3b020345e37652cd2bda9b1495c366af17e7e lib/unicore/SpecialCasing.txt
1884 * 93ab1acd8fd9d450463b50ae77eab151a7cda48f98b25b56baed8070f80fc936 lib/unicore/UnicodeData.txt
1885 * ec5ba64af58297a46de17848eb984d2b231adb304de92e9d0d3befdbf9dc2551 lib/unicore/VerticalOrientation.txt
1886 * 95bd55cf803b93eb0b4990cf0e1d70ede263b36412d9c6921fd6f15cef058961 lib/unicore/auxiliary/GCBTest.txt
1887 * 39d73448fd257e6082f83ddf4c8bf6feb191e85dc8fc56b1a8512482de5e3dea lib/unicore/auxiliary/GraphemeBreakProperty.txt
1888 * f385e70f79f5959ae66d64b00f4bda39db6cef78e5363a0cdd88db46eafc6c8f lib/unicore/auxiliary/LBTest.txt
1889 * 7d6c909af97d0ab545a132d412f6e4e65c7eb5158514a7feb9bf00bcd05875f9 lib/unicore/auxiliary/SBTest.txt
1890 * c47d674ef4170c46185bf56f7a4c6627f65f012295e0994f7dc4aea51f8fd8cf lib/unicore/auxiliary/SentenceBreakProperty.txt
1891 * 3e3320bbbe775de7f1a0b9a30021eb949116a9b05cb461c90596c5ecf1743831 lib/unicore/auxiliary/WBTest.txt
1892 * f221f89fe3bb3becc00de726d5694c4b7f464c316baff6d339b2ff3900bcb96c lib/unicore/auxiliary/WordBreakProperty.txt
1893 * db2c41c618bab54b00e58223ad11cec550f9b9fd1a471de236e660da92fe4870 lib/unicore/extracted/DBidiClass.txt
1894 * fecd8a1c49935d794c4c1012f4158aa536a13049a4c10d01aaf7b5f90f3b2cbc lib/unicore/extracted/DBinaryProperties.txt
1895 * db6f38fb4aa8b9181b5e6a9f320de9d5c2c9b5687116a619b3cb90138b025e0b lib/unicore/extracted/DCombiningClass.txt
1896 * 2524f69c175831fd84bfbaf13ea37992f41db167d728c51b1d0002c1d0b130b0 lib/unicore/extracted/DDecompositionType.txt
1897 * 16852301d54ae59b5cfe0daa6b8e17fb688ed055d59b2a5a11eaafc650cc9d30 lib/unicore/extracted/DEastAsianWidth.txt
1898 * 78f898b988049a5bea5039cea6ffe87a92596859ac660a6c438519b512fe2ee6 lib/unicore/extracted/DGeneralCategory.txt
1899 * 33441692403901287c834f96bd33b671133a6f74e2732c61a497608b9e434932 lib/unicore/extracted/DJoinGroup.txt
1900 * a792ac5ef602e3bace679cc96d7491701dcdb73d81c782253de88fdcc5e70e50 lib/unicore/extracted/DJoinType.txt
1901 * 78e2600e24fa7d5ab62117de50b382f8b31b08401c37a0782c38dacb340b64e7 lib/unicore/extracted/DLineBreak.txt
1902 * 1bde4ad73e271c6349fbd1972e54f38bba5cc1900c28f678e79b9e8909b31793 lib/unicore/extracted/DNumType.txt
1903 * 6278722699123f3890e4b1cc42011e96d8960e4958a3b93484361530983d2611 lib/unicore/extracted/DNumValues.txt
1904 * a53648677d262457dda0b22efba8820d2a45ca6ebae01f8c73d30db380eb83b5 lib/unicore/mktables
1905 * a712c758275b460d18fa77a26ed3589689bb3f69dcc1ea99b913e32db92a5cd2 lib/unicore/version
1906 * 2680b9254eb236c5c090f11b149605043e8c8433661b96efc4a42fb4709342a5 regen/charset_translations.pl
1907 * 830144f6afdd047b009754ffa06134397268f6638837fe85283483eb0cfdd558 regen/regcharclass.pl
1908 * c6b0b0b7e4ac4f5a57d203e84194749987477ea55b2366e3b343aadf8cc7d6b5 regen/regcharclass_multi_char_folds.pl