(perl #132147) don't cache invalid pages
[perl.git] / regcharclass.h
1 /* -*- buffer-read-only: t -*-
2  *
3  *    regcharclass.h
4  *
5  *    Copyright (C) 2007, 2011 by Larry Wall and others
6  *
7  *    You may distribute under the terms of either the GNU General Public
8  *    License or the Artistic License, as specified in the README file.
9  *
10  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
11  * This file is built by regen/regcharclass.pl.
12  * Any changes made here will be lost!
13  * WARNING: These macros are for internal Perl core use only, and may be
14  * changed or removed without notice.
15  */
16
17
18 #ifndef PERL_REGCHARCLASS_H_ /* Guard against nested #includes */
19 #define PERL_REGCHARCLASS_H_
20
21 #if 'A' == 65 /* ASCII/Latin1 */
22 /*
23         LNBREAK: Line Break: \R
24
25         "\x0D\x0A"      # CRLF - Network (Windows) line ending
26         \p{VertSpace}
27 */
28 /*** GENERATED CODE ***/
29 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
30 ( ((e)-(s) > 2) ?                                                           \
31     ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0C ) ? 1        \
32     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
33         ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 )                           \
34     : ( is_utf8 ) ?                                                         \
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] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
38     : ( 0x85 == ((const U8*)s)[0] ) )                                       \
39 : ((e)-(s) > 1) ?                                                           \
40     ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0C ) ? 1        \
41     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
42         ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 )                           \
43     : ( is_utf8 ) ?                                                         \
44         ( ( ( 0xC2 == ((const U8*)s)[0] ) && ( 0x85 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
45     : ( 0x85 == ((const U8*)s)[0] ) )                                       \
46 : ((e)-(s) > 0) ?                                                           \
47     ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) ? 1        \
48     : ( !( is_utf8 ) ) ?                                                    \
49         ( 0x85 == ((const U8*)s)[0] )                                       \
50     : 0 )                                                                   \
51 : 0 )
52
53 /*** GENERATED CODE ***/
54 #define is_LNBREAK_utf8_safe(s,e)                                           \
55 ( ((e)-(s) > 2) ?                                                           \
56     ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 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] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
62 : ((e)-(s) > 1) ?                                                           \
63     ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 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 )\
67 : ((e)-(s) > 0) ?                                                           \
68     ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D )              \
69 : 0 )
70
71 /*** GENERATED CODE ***/
72 #define is_LNBREAK_latin1_safe(s,e)                                         \
73 ( ((e)-(s) > 1) ?                                                           \
74     ( ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0C ) || 0x85 == ((const U8*)s)[0] ) ? 1\
75     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
76         ( ( 0x0A == ((const U8*)s)[1] ) ? 2 : 1 )                           \
77     : 0 )                                                                   \
78 : ((e)-(s) > 0) ?                                                           \
79     ( ( 0x0A <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x85 == ((const U8*)s)[0] )\
80 : 0 )
81
82 /*
83         HORIZWS: Horizontal Whitespace: \h \H
84
85         \p{HorizSpace}
86 */
87 /*** GENERATED CODE ***/
88 #define is_HORIZWS_high(s)                                                  \
89 ( ( 0xE1 == ((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         ( ( ( ((const U8*)s)[2] <= 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 )
96
97 /*** GENERATED CODE ***/
98 #define is_HORIZWS_cp_high(cp)                                              \
99 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
100 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
101 ( 0x202F == cp || ( 0x202F < cp &&                                          \
102 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
103
104 /*
105         VERTWS: Vertical Whitespace: \v \V
106
107         \p{VertSpace}
108 */
109 /*** GENERATED CODE ***/
110 #define is_VERTWS_high(s)                                                   \
111 ( ( ( ( 0xE2 == ((const U8*)s)[0] ) && ( 0x80 == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )
112
113 /*** GENERATED CODE ***/
114 #define is_VERTWS_cp_high(cp)                                               \
115 ( 0x2028 == cp || 0x2029 == cp )
116
117 /*
118         XDIGIT: Hexadecimal digits
119
120         \p{XDigit}
121 */
122 /*** GENERATED CODE ***/
123 #define is_XDIGIT_high(s)                                                   \
124 ( ( 0xEF == ((const U8*)s)[0] ) ?                                           \
125     ( ( 0xBC == ((const U8*)s)[1] ) ?                                       \
126         ( ( ( 0x90 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x99 ) || ( 0xA1 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xA6 ) ) ? 3 : 0 )\
127     : ( ( 0xBD == ((const U8*)s)[1] ) && ( 0x81 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )\
128 : 0 )
129
130 /*** GENERATED CODE ***/
131 #define is_XDIGIT_cp_high(cp)                                               \
132 ( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
133 ( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
134
135 /*
136         XPERLSPACE: \p{XPerlSpace}
137
138         \p{XPerlSpace}
139 */
140 /*** GENERATED CODE ***/
141 #define is_XPERLSPACE_high(s)                                               \
142 ( ( 0xE1 == ((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         ( ( ( ((const U8*)s)[2] <= 0x8A ) || ( ((const U8*)s)[2] & 0xFE ) == 0xA8 || 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 )
149
150 /*** GENERATED CODE ***/
151 #define is_XPERLSPACE_cp_high(cp)                                           \
152 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
153 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
154 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
155 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
156 ( 0x202F == cp || ( 0x202F < cp &&                                          \
157 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
158
159 /*
160         REPLACEMENT: Unicode REPLACEMENT CHARACTER
161
162         0xFFFD
163 */
164 /*** GENERATED CODE ***/
165 #define is_REPLACEMENT_utf8_safe(s,e)                                       \
166 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xEF == ((const U8*)s)[0] ) ) && ( 0xBF == ((const U8*)s)[1] ) ) && ( 0xBD == ((const U8*)s)[2] ) ) ? 3 : 0 )
167
168 /*
169         NONCHAR: Non character code points
170
171         \p{_Perl_Nchar}
172 */
173 /*** GENERATED CODE ***/
174 #define is_NONCHAR_utf8_safe(s,e)                                           \
175 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xEF == ((const U8*)s)[0] ) ?\
176             ( ( 0xB7 == ((const U8*)s)[1] ) ?                               \
177                 ( ( 0x90 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xAF ) ? 3 : 0 )\
178             : ( ( 0xBF == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xBE ) ) ? 3 : 0 )\
179         : ( 0xF0 == ((const U8*)s)[0] ) ?                                   \
180             ( ( ( ( ((const U8*)s)[1] == 0x9F || ( ( ((const U8*)s)[1] & 0xEF ) == 0xAF ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0xBE ) ) ? 4 : 0 )\
181         : ( 0xF1 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0xF3 ) ?      \
182             ( ( ( ( ( ((const U8*)s)[1] & 0xCF ) == 0x8F ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0xBE ) ) ? 4 : 0 )\
183         : ( ( ( ( 0xF4 == ((const U8*)s)[0] ) && ( 0x8F == ((const U8*)s)[1] ) ) && ( 0xBF == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0xBE ) ) ? 4 : 0 ) : 0 )
184
185 /*
186         SURROGATE: Surrogate code points
187
188         \p{_Perl_Surrogate}
189 */
190 /*** GENERATED CODE ***/
191 #define is_SURROGATE_utf8_safe(s,e)                                         \
192 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( ( ((const U8*)s)[1] & 0xE0 ) == 0xA0 ) ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )
193
194 /*
195         QUOTEMETA: Meta-characters that \Q should quote
196
197         \p{_Perl_Quotemeta}
198 */
199 /*** GENERATED CODE ***/
200 #define is_QUOTEMETA_high(s)                                                \
201 ( ( 0xCD == ((const U8*)s)[0] ) ?                                           \
202     ( ( 0x8F == ((const U8*)s)[1] ) ? 2 : 0 )                               \
203 : ( 0xD8 == ((const U8*)s)[0] ) ?                                           \
204     ( ( 0x9C == ((const U8*)s)[1] ) ? 2 : 0 )                               \
205 : ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
206     ( ( 0x85 == ((const U8*)s)[1] ) ?                                       \
207         ( ( 0x9F == ((const U8*)s)[2] || 0xA0 == ((const U8*)s)[2] ) ? 3 : 0 )\
208     : ( 0x9A == ((const U8*)s)[1] ) ?                                       \
209         ( ( 0x80 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
210     : ( 0x9E == ((const U8*)s)[1] ) ?                                       \
211         ( ( ( ((const U8*)s)[2] & 0xFE ) == 0xB4 ) ? 3 : 0 )                \
212     : ( ( 0xA0 == ((const U8*)s)[1] ) && ( 0x8B <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x8E ) ) ? 3 : 0 )\
213 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
214     ( ( 0x80 == ((const U8*)s)[1] ) ?                                       \
215         ( ( ((const U8*)s)[2] <= 0xBE ) ? 3 : 0 )                           \
216     : ( 0x81 == ((const U8*)s)[1] ) ?                                       \
217         ( ( ( 0x81 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x93 ) || ( 0x95 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xAF ) ) ? 3 : 0 )\
218     : ( 0x86 == ((const U8*)s)[1] ) ?                                       \
219         ( ( ((const U8*)s)[2] >= 0x90 ) ? 3 : 0 )                           \
220     : ( ( 0x87 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x90 ) || ( 0x94 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x9C ) || ( 0x9F <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0xAF ) || ( ((const U8*)s)[1] & 0xFE ) == 0xB8 ) ?\
221         3                                                                   \
222     : ( 0x91 == ((const U8*)s)[1] ) ?                                       \
223         ( ( ((const U8*)s)[2] <= 0x9F ) ? 3 : 0 )                           \
224     : ( 0x9D == ((const U8*)s)[1] ) ?                                       \
225         ( ( ((const U8*)s)[2] <= 0xB5 ) ? 3 : 0 )                           \
226     : ( ( 0x9E == ((const U8*)s)[1] ) && ( ((const U8*)s)[2] >= 0x94 ) ) ? 3 : 0 )\
227 : ( 0xE3 == ((const U8*)s)[0] ) ?                                           \
228     ( ( 0x80 == ((const U8*)s)[1] ) ?                                       \
229         ( ( ( ((const U8*)s)[2] <= 0x83 ) || ( 0x88 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xA0 ) || 0xB0 == ((const U8*)s)[2] ) ? 3 : 0 )\
230     : ( ( 0x85 == ((const U8*)s)[1] ) && ( 0xA4 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
231 : ( 0xEF == ((const U8*)s)[0] ) ?                                           \
232     ( ( 0xB4 == ((const U8*)s)[1] ) ?                                       \
233         ( ( ((const U8*)s)[2] >= 0xBE ) ? 3 : 0 )                           \
234     : ( 0xB8 == ((const U8*)s)[1] ) ?                                       \
235         ( ( ((const U8*)s)[2] <= 0x8F ) ? 3 : 0 )                           \
236     : ( 0xB9 == ((const U8*)s)[1] ) ?                                       \
237         ( ( 0x85 == ((const U8*)s)[2] || 0x86 == ((const U8*)s)[2] ) ? 3 : 0 )\
238     : ( 0xBB == ((const U8*)s)[1] ) ?                                       \
239         ( ( 0xBF == ((const U8*)s)[2] ) ? 3 : 0 )                           \
240     : ( 0xBE == ((const U8*)s)[1] ) ?                                       \
241         ( ( 0xA0 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
242     : ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xB0 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0xB8 ) ) ? 3 : 0 )\
243 : ( 0xF0 == ((const U8*)s)[0] ) ?                                           \
244     ( ( 0x9B == ((const U8*)s)[1] ) ?                                       \
245         ( ( ( 0xB2 == ((const U8*)s)[2] ) && ( ( ((const U8*)s)[3] & 0xFC ) == 0xA0 ) ) ? 4 : 0 )\
246     : ( ( ( 0x9D == ((const U8*)s)[1] ) && ( 0x85 == ((const U8*)s)[2] ) ) && ( 0xB3 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0xBA ) ) ? 4 : 0 )\
247 : ( ( 0xF3 == ((const U8*)s)[0] ) && ( 0xA0 == ((const U8*)s)[1] ) ) ? 4 : 0 )
248
249 /*
250         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
251
252         &regcharclass_multi_char_folds::multi_char_folds(1)
253 */
254 /*** GENERATED CODE ***/
255 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
256 ( ( 0x61 == ((const U8*)s)[0] ) ?                                           \
257         ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
258     : ( 0x66 == ((const U8*)s)[0] ) ?                                       \
259         ( ( 0x66 == ((const U8*)s)[1] ) ?                                   \
260             ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
261         : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
262     : ( 0x68 == ((const U8*)s)[0] ) ?                                       \
263         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
264     : ( 0x69 == ((const U8*)s)[0] ) ?                                       \
265         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
266     : ( 0x6A == ((const U8*)s)[0] ) ?                                       \
267         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
268     : ( 0x73 == ((const U8*)s)[0] ) ?                                       \
269         ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 2 : 0 )\
270     : ( 0x74 == ((const U8*)s)[0] ) ?                                       \
271         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
272     : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ?          \
273         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
274     : ( 0xC5 == ((const U8*)s)[0] ) ?                                       \
275         ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
276     : ( 0xCA == ((const U8*)s)[0] ) ?                                       \
277         ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
278     : ( 0xCE == ((const U8*)s)[0] ) ?                                       \
279         ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ?                        \
280             ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
281         : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ?      \
282             ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
283                 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
284             : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
285         : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
286     : ( 0xCF == ((const U8*)s)[0] ) ?                                       \
287         ( ( 0x81 == ((const U8*)s)[1] ) ?                                   \
288             ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
289         : ( 0x85 == ((const U8*)s)[1] ) ?                                   \
290             ( ( 0xCC == ((const U8*)s)[2] ) ?                               \
291                 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
292             : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
293         : ( 0x89 == ((const U8*)s)[1] ) ?                                   \
294             ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
295                 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
296             : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
297         : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
298     : ( 0xD5 == ((const U8*)s)[0] ) ?                                       \
299         ( ( 0xA5 == ((const U8*)s)[1] ) ?                                   \
300             ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
301         : ( 0xB4 == ((const U8*)s)[1] ) ?                                   \
302             ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
303         : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
304     : ( 0xE1 == ((const U8*)s)[0] ) ?                                       \
305         ( ( 0xBC == ((const U8*)s)[1] ) ?                                   \
306             ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
307         : ( ( ( ( 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 )\
308     : 0 )
309
310
311 /*** GENERATED CODE ***/
312 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
313 ( ((e)-(s) > 3) ?                                                           \
314     ( ( 0x61 == ((const U8*)s)[0] ) ?                                       \
315         ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
316     : ( 0x66 == ((const U8*)s)[0] ) ?                                       \
317         ( ( 0x66 == ((const U8*)s)[1] ) ?                                   \
318             ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
319         : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
320     : ( 0x68 == ((const U8*)s)[0] ) ?                                       \
321         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
322     : ( 0x69 == ((const U8*)s)[0] ) ?                                       \
323         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
324     : ( 0x6A == ((const U8*)s)[0] ) ?                                       \
325         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
326     : ( 0x73 == ((const U8*)s)[0] ) ?                                       \
327         ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 2 : 0 )\
328     : ( 0x74 == ((const U8*)s)[0] ) ?                                       \
329         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
330     : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ?          \
331         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
332     : ( 0xC5 == ((const U8*)s)[0] ) ?                                       \
333         ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
334     : ( 0xCA == ((const U8*)s)[0] ) ?                                       \
335         ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
336     : ( 0xCE == ((const U8*)s)[0] ) ?                                       \
337         ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ?                        \
338             ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
339         : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ?      \
340             ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
341                 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
342             : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
343         : ( ( ( 0xB9 == ((const U8*)s)[1] ) && ( 0xCD == ((const U8*)s)[2] ) ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
344     : ( 0xCF == ((const U8*)s)[0] ) ?                                       \
345         ( ( 0x81 == ((const U8*)s)[1] ) ?                                   \
346             ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
347         : ( 0x85 == ((const U8*)s)[1] ) ?                                   \
348             ( ( 0xCC == ((const U8*)s)[2] ) ?                               \
349                 ( ( 0x93 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
350             : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
351         : ( 0x89 == ((const U8*)s)[1] ) ?                                   \
352             ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
353                 ( ( 0x82 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
354             : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
355         : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
356     : ( 0xD5 == ((const U8*)s)[0] ) ?                                       \
357         ( ( 0xA5 == ((const U8*)s)[1] ) ?                                   \
358             ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
359         : ( 0xB4 == ((const U8*)s)[1] ) ?                                   \
360             ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
361         : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
362     : 0 )                                                                   \
363 : ((e)-(s) > 2) ?                                                           \
364     ( ( 0x61 == ((const U8*)s)[0] ) ?                                       \
365         ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
366     : ( 0x66 == ((const U8*)s)[0] ) ?                                       \
367         ( ( 0x66 == ((const U8*)s)[1] ) ?                                   \
368             ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
369         : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
370     : ( 0x68 == ((const U8*)s)[0] ) ?                                       \
371         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
372     : ( 0x69 == ((const U8*)s)[0] ) ?                                       \
373         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
374     : ( 0x6A == ((const U8*)s)[0] ) ?                                       \
375         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
376     : ( 0x73 == ((const U8*)s)[0] ) ?                                       \
377         ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 2 : 0 )\
378     : ( 0x74 == ((const U8*)s)[0] ) ?                                       \
379         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
380     : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ?          \
381         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
382     : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0xBC == ((const U8*)s)[1] ) ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
383 : ((e)-(s) > 1) ?                                                           \
384     ( ( 0x66 == ((const U8*)s)[0] ) ?                                       \
385         ( ( 0x66 == ((const U8*)s)[1] || 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
386     : ( ( 0x73 == ((const U8*)s)[0] ) && ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ) ? 2 : 0 )\
387 : 0 )
388
389
390 /*** GENERATED CODE ***/
391 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
392 ( ((e)-(s) > 5) ?                                                           \
393     ( ( 0x61 == ((const U8*)s)[0] ) ?                                       \
394         ( ( ( 0xCA == ((const U8*)s)[1] ) && ( 0xBE == ((const U8*)s)[2] ) ) ? 3 : 0 )\
395     : ( 0x66 == ((const U8*)s)[0] ) ?                                       \
396         ( ( 0x66 == ((const U8*)s)[1] ) ?                                   \
397             ( ( 0x69 == ((const U8*)s)[2] || 0x6C == ((const U8*)s)[2] ) ? 3 : 2 )\
398         : ( 0x69 == ((const U8*)s)[1] || 0x6C == ((const U8*)s)[1] ) ? 2 : 0 )\
399     : ( 0x68 == ((const U8*)s)[0] ) ?                                       \
400         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
401     : ( 0x69 == ((const U8*)s)[0] ) ?                                       \
402         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x87 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
403     : ( 0x6A == ((const U8*)s)[0] ) ?                                       \
404         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8C == ((const U8*)s)[2] ) ) ? 3 : 0 )\
405     : ( 0x73 == ((const U8*)s)[0] ) ?                                       \
406         ( ( 0x73 == ((const U8*)s)[1] || 0x74 == ((const U8*)s)[1] ) ? 2 : 0 )\
407     : ( 0x74 == ((const U8*)s)[0] ) ?                                       \
408         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x88 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
409     : ( 0x77 == ((const U8*)s)[0] || 0x79 == ((const U8*)s)[0] ) ?          \
410         ( ( ( 0xCC == ((const U8*)s)[1] ) && ( 0x8A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
411     : ( 0xC5 == ((const U8*)s)[0] ) ?                                       \
412         ( ( ( ( 0xBF == ((const U8*)s)[1] ) && ( 0xC5 == ((const U8*)s)[2] ) ) && ( 0xBF == ((const U8*)s)[3] ) ) ? 4 : 0 )\
413     : ( 0xCA == ((const U8*)s)[0] ) ?                                       \
414         ( ( ( 0xBC == ((const U8*)s)[1] ) && ( 0x6E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
415     : ( 0xCE == ((const U8*)s)[0] ) ?                                       \
416         ( ( ( ((const U8*)s)[1] & 0xFD ) == 0xAC ) ?                        \
417             ( ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
418         : ( 0xB1 == ((const U8*)s)[1] || 0xB7 == ((const U8*)s)[1] ) ?      \
419             ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
420                 ( ( 0x82 == ((const U8*)s)[3] ) ?                           \
421                     ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
422                 : 0 )                                                       \
423             : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
424         : ( 0xB9 == ((const U8*)s)[1] ) ?                                   \
425             ( ( 0xCC == ((const U8*)s)[2] ) ?                               \
426                 ( ( 0x88 == ((const U8*)s)[3] ) ?                           \
427                     ( ( 0xCC == ((const U8*)s)[4] ) ?                       \
428                         ( ( ( ((const U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 0 )\
429                     : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
430                 : 0 )                                                       \
431             : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
432         : 0 )                                                               \
433     : ( 0xCF == ((const U8*)s)[0] ) ?                                       \
434         ( ( 0x81 == ((const U8*)s)[1] ) ?                                   \
435             ( ( ( 0xCC == ((const U8*)s)[2] ) && ( 0x93 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
436         : ( 0x85 == ((const U8*)s)[1] ) ?                                   \
437             ( ( 0xCC == ((const U8*)s)[2] ) ?                               \
438                 ( ( 0x88 == ((const U8*)s)[3] ) ?                           \
439                     ( ( 0xCC == ((const U8*)s)[4] ) ?                       \
440                         ( ( ( ((const U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 0 )\
441                     : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
442                 : ( 0x93 == ((const U8*)s)[3] ) ?                           \
443                     ( ( 0xCC == ((const U8*)s)[4] ) ?                       \
444                         ( ( ( ((const U8*)s)[5] & 0xFE ) == 0x80 ) ? 6 : 4 )\
445                     : ( ( 0xCD == ((const U8*)s)[4] ) && ( 0x82 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
446                 : 0 )                                                       \
447             : ( ( 0xCD == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
448         : ( 0x89 == ((const U8*)s)[1] ) ?                                   \
449             ( ( 0xCD == ((const U8*)s)[2] ) ?                               \
450                 ( ( 0x82 == ((const U8*)s)[3] ) ?                           \
451                     ( ( ( 0xCE == ((const U8*)s)[4] ) && ( 0xB9 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
452                 : 0 )                                                       \
453             : ( ( 0xCE == ((const U8*)s)[2] ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
454         : ( ( ( 0x8E == ((const U8*)s)[1] ) && ( 0xCE == ((const U8*)s)[2] ) ) && ( 0xB9 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
455     : ( 0xD5 == ((const U8*)s)[0] ) ?                                       \
456         ( ( 0xA5 == ((const U8*)s)[1] ) ?                                   \
457             ( ( ( 0xD6 == ((const U8*)s)[2] ) && ( 0x82 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
458         : ( 0xB4 == ((const U8*)s)[1] ) ?                                   \
459             ( ( ( 0xD5 == ((const U8*)s)[2] ) && ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0xA5 ) || ((const U8*)s)[3] == 0xAB || ((const U8*)s)[3] == 0xB6 ) ) ? 4 : 0 )\
460         : ( ( ( 0xBE == ((const U8*)s)[1] ) && ( 0xD5 == ((const U8*)s)[2] ) ) && ( 0xB6 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
461     : ( 0xE1 == ((const U8*)s)[0] ) ?                                       \
462         ( ( 0xBC == ((const U8*)s)[1] ) ?                                   \
463             ( ( ( ( ( ((const U8*)s)[2] & 0xD8 ) == 0x80 ) && ( 0xCE == ((const U8*)s)[3] ) ) && ( 0xB9 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
464         : ( ( ( ( 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 )\
465     : 0 )                                                                   \
466 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )
467
468 /*
469         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
470
471         &regcharclass_multi_char_folds::multi_char_folds(0)
472 */
473 /*** GENERATED CODE ***/
474 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
475 ( ((e)-(s) > 2) ?                                                           \
476     ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ?                            \
477         ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) ?                        \
478             ( ( ( ( ((const U8*)s)[2] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[2] & 0xDF ) == 0x4C ) ) ? 3 : 2 )\
479         : ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
480     : ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x53 ) && ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
481 : ((e)-(s) > 1) ?                                                           \
482     ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x46 ) ?                            \
483         ( ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x46 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x49 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x4C ) ) ? 2 : 0 )\
484     : ( ( ( ((const U8*)s)[0] & 0xDF ) == 0x53 ) && ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x53 ) || ( ( ((const U8*)s)[1] & 0xDF ) == 0x54 ) ) ) ? 2 : 0 )\
485 : 0 )
486
487 /*
488         FOLDS_TO_MULTI: characters that fold to multi-char strings
489
490         \p{_Perl_Folds_To_Multi_Char}
491 */
492 /*** GENERATED CODE ***/
493 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
494 ( ( 0xC3 == ((const U8*)s)[0] ) ?                                           \
495     ( ( 0x9F == ((const U8*)s)[1] ) ? 2 : 0 )                               \
496 : ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ?              \
497     ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
498 : ( 0xC5 == ((const U8*)s)[0] ) ?                                           \
499     ( ( 0x89 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
500 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
501     ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x90 ) ? 2 : 0 )                    \
502 : ( 0xD6 == ((const U8*)s)[0] ) ?                                           \
503     ( ( 0x87 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
504 : ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
505     ( ( 0xBA == ((const U8*)s)[1] ) ?                                       \
506         ( ( ( 0x96 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x9A ) || 0x9E == ((const U8*)s)[2] ) ? 3 : 0 )\
507     : ( 0xBD == ((const U8*)s)[1] ) ?                                       \
508         ( ( ( ((const U8*)s)[2] & 0xF9 ) == 0x90 ) ? 3 : 0 )                \
509     : ( 0xBE == ((const U8*)s)[1] ) ?                                       \
510         ( ( ( ( ((const U8*)s)[2] & 0xE0 ) == 0x80 ) || ( ( ((const U8*)s)[2] & 0xF0 ) == 0xA0 ) || ( ( ((const U8*)s)[2] & 0xFA ) == 0xB2 ) || ( ( ((const U8*)s)[2] & 0xF7 ) == 0xB4 ) ) ? 3 : 0 )\
511     : ( ( 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 )\
512 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( ( ((const U8*)s)[2] <= 0x86 ) || ( 0x93 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x97 ) ) ) ? 3 : 0 )
513
514 /*
515         PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
516
517         \p{_Perl_Problematic_Locale_Folds}
518 */
519 /*** GENERATED CODE ***/
520 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
521 ( ( ((const U8*)s)[0] <= 0x7F ) ? 1                                         \
522 : ( ( ((const U8*)s)[0] & 0xFE ) == 0xC2 ) ?                                \
523     2                                                                       \
524 : ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ?              \
525     ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
526 : ( 0xC5 == ((const U8*)s)[0] ) ?                                           \
527     ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
528 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
529     ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 )                    \
530 : ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
531     ( ( ( 0xBA == ((const U8*)s)[1] ) && ( ( 0x96 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
532 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
533     ( ( ( 0x84 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
534 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( ((const U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )
535
536 /*** GENERATED CODE ***/
537 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
538 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
539 ( 0x130 == cp || ( 0x130 < cp &&                                            \
540 ( 0x149 == cp || ( 0x149 < cp &&                                            \
541 ( 0x178 == cp || ( 0x178 < cp &&                                            \
542 ( 0x17F == cp || ( 0x17F < cp &&                                            \
543 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
544 ( 0x39C == cp || ( 0x39C < cp &&                                            \
545 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
546 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
547 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
548 ( 0x212A == cp || ( 0x212A < cp &&                                          \
549 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
550
551 /*
552         PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
553
554         \p{_Perl_Problematic_Locale_Foldeds_Start}
555 */
556 /*** GENERATED CODE ***/
557 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
558 ( ( ((const U8*)s)[0] <= 0x7F ) ? 1                                         \
559 : ( ( ((const U8*)s)[0] & 0xFE ) == 0xC2 ) ?                                \
560     2                                                                       \
561 : ( 0xC4 == ((const U8*)s)[0] || 0xC7 == ((const U8*)s)[0] ) ?              \
562     ( ( 0xB0 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
563 : ( 0xC5 == ((const U8*)s)[0] ) ?                                           \
564     ( ( 0x89 == ((const U8*)s)[1] || 0xB8 == ((const U8*)s)[1] || 0xBF == ((const U8*)s)[1] ) ? 2 : 0 )\
565 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
566     ( ( 0xBC == ((const U8*)s)[1] ) ? 2 : 0 )                               \
567 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
568     ( ( ( ((const U8*)s)[1] & 0xDF ) == 0x9C ) ? 2 : 0 )                    \
569 : ( 0xE1 == ((const U8*)s)[0] ) ?                                           \
570     ( ( ( 0xBA == ((const U8*)s)[1] ) && ( ( 0x96 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x9A ) || 0x9E == ((const U8*)s)[2] ) ) ? 3 : 0 )\
571 : ( 0xE2 == ((const U8*)s)[0] ) ?                                           \
572     ( ( ( 0x84 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0xAA ) ) ? 3 : 0 )\
573 : ( ( ( 0xEF == ((const U8*)s)[0] ) && ( 0xAC == ((const U8*)s)[1] ) ) && ( ((const U8*)s)[2] <= 0x86 ) ) ? 3 : 0 )
574
575 /*** GENERATED CODE ***/
576 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
577 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
578 ( 0x130 == cp || ( 0x130 < 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 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
587 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
588 ( 0x212A == cp || ( 0x212A < cp &&                                          \
589 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
590
591 /*
592         PATWS: pattern white space
593
594         \p{_Perl_PatWS}
595 */
596 /*** GENERATED CODE ***/
597 #define is_PATWS_safe(s,e,is_utf8)                                          \
598 ( ( LIKELY((e) > (s)) ) ?                                                   \
599     ( ( ( 0x09 <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x20 == ((const U8*)s)[0] ) ? 1\
600     : (! is_utf8 ) ?                                                        \
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] ) ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0x8E || ( ((const U8*)s)[2] & 0xFE ) == 0xA8 ) ) ? 3 : 0 )\
606         : 0 )                                                               \
607 : 0 )
608
609 /*** GENERATED CODE ***/
610 #define is_PATWS_cp(cp)                                                     \
611 ( ( 0x09 <= cp && cp <= 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 ) ) ) ) ) ) ) ) ) ) )
617
618 /*
619         HANGUL_ED: Hangul syllables whose first character is \xED
620
621         0xD000 - 0xD7FF
622 */
623 /*** GENERATED CODE ***/
624 #define is_HANGUL_ED_utf8_safe(s,e)                                         \
625 ( ( ( ( ( ((e) - (s)) >= 3 ) && ( 0xED == ((const U8*)s)[0] ) ) && ( ( ((const U8*)s)[1] & 0xE0 ) == 0x80 ) ) && ( ( ((const U8*)s)[2] & 0xC0 ) == 0x80 ) ) ? 3 : 0 )
626
627 #endif  /* ASCII/Latin1 */
628
629 #if 'A' == 193 /* EBCDIC 1047 */ \
630      && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
631      && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
632      && '$' == 91 && '@' == 124 && '`' == 121
633 /*
634         LNBREAK: Line Break: \R
635
636         "\x0D\x0A"      # CRLF - Network (Windows) line ending
637         \p{VertSpace}
638 */
639 /*** GENERATED CODE ***/
640 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
641 ( ((e)-(s) > 2) ?                                                           \
642     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 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] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
646 : ((e)-(s) > 1) ?                                                           \
647     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 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 )                           \
650     : 0 )                                                                   \
651 : ((e)-(s) > 0) ?                                                           \
652     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
653 : 0 )
654
655 /*** GENERATED CODE ***/
656 #define is_LNBREAK_utf8_safe(s,e)                                           \
657 ( ((e)-(s) > 2) ?                                                           \
658     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 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] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
662 : ((e)-(s) > 1) ?                                                           \
663     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 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 )                           \
666     : 0 )                                                                   \
667 : ((e)-(s) > 0) ?                                                           \
668     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
669 : 0 )
670
671 /*** GENERATED CODE ***/
672 #define is_LNBREAK_latin1_safe(s,e)                                         \
673 ( ((e)-(s) > 1) ?                                                           \
674     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 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 )                           \
677     : 0 )                                                                   \
678 : ((e)-(s) > 0) ?                                                           \
679     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
680 : 0 )
681
682 /*
683         HORIZWS: Horizontal Whitespace: \h \H
684
685         \p{HorizSpace}
686 */
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         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 )
698
699 /*** GENERATED CODE ***/
700 #define is_HORIZWS_cp_high(cp)                                              \
701 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
702 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
703 ( 0x202F == cp || ( 0x202F < cp &&                                          \
704 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
705
706 /*
707         VERTWS: Vertical Whitespace: \v \V
708
709         \p{VertSpace}
710 */
711 /*** GENERATED CODE ***/
712 #define is_VERTWS_high(s)                                                   \
713 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )
714
715 /*** GENERATED CODE ***/
716 #define is_VERTWS_cp_high(cp)                                               \
717 ( 0x2028 == cp || 0x2029 == cp )
718
719 /*
720         XDIGIT: Hexadecimal digits
721
722         \p{XDigit}
723 */
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             ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x68 ) ) ? 4 : 0 )\
728         : ( ( ( ((const U8*)s)[2] & 0xFE ) == 0x68 ) && ( 0x42 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
729
730 /*** GENERATED CODE ***/
731 #define is_XDIGIT_cp_high(cp)                                               \
732 ( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
733 ( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
734
735 /*
736         XPERLSPACE: \p{XPerlSpace}
737
738         \p{XPerlSpace}
739 */
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         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
747     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
748         ( ( ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || 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 )
751
752 /*** GENERATED CODE ***/
753 #define is_XPERLSPACE_cp_high(cp)                                           \
754 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
755 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
756 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
757 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
758 ( 0x202F == cp || ( 0x202F < cp &&                                          \
759 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
760
761 /*
762         REPLACEMENT: Unicode REPLACEMENT CHARACTER
763
764         0xFFFD
765 */
766 /*** GENERATED CODE ***/
767 #define is_REPLACEMENT_utf8_safe(s,e)                                       \
768 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( 0x73 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x71 == ((const U8*)s)[3] ) ) ? 4 : 0 )
769
770 /*
771         NONCHAR: Non character code points
772
773         \p{_Perl_Nchar}
774 */
775 /*** GENERATED CODE ***/
776 #define is_NONCHAR_utf8_safe(s,e)                                           \
777 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
778             ( ( 0x73 == ((const U8*)s)[1] ) ?                               \
779                 ( ( 0x55 == ((const U8*)s)[2] ) ?                           \
780                     ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ? 4 : 0 )\
781                 : ( 0x56 == ((const U8*)s)[2] ) ?                           \
782                     ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
783                 : ( ( 0x73 == ((const U8*)s)[2] ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
784             : 0 )                                                           \
785         : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
786             ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
787         : ( 0xED == ((const U8*)s)[0] ) ?                                   \
788             ( ( ( ( ( ((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] ) ) && ( ( ((const U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 )\
789         : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( ( ((const U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 ) : 0 )
790
791 /*
792         SURROGATE: Surrogate code points
793
794         \p{_Perl_Surrogate}
795 */
796 /*** GENERATED CODE ***/
797 #define is_SURROGATE_utf8_safe(s,e)                                         \
798 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( 0x65 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) ? 4 : 0 )
799
800 /*
801         QUOTEMETA: Meta-characters that \Q should quote
802
803         \p{_Perl_Quotemeta}
804 */
805 /*** GENERATED CODE ***/
806 #define is_QUOTEMETA_high_part0(s)                                          \
807 ( ( 0x41 == ((const U8*)s)[1] || ( 0x54 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ?\
808         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
809     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
810         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
811     : ( 0x43 == ((const U8*)s)[1] ) ?                                       \
812         ( ( ( 0x42 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x62 == ((const U8*)s)[2] || ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
813     : ( 0x44 == ((const U8*)s)[1] ) ?                                       \
814         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
815     : ( ( 0x53 == ((const U8*)s)[1] ) && ( ( 0x57 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )
816
817
818 /*** GENERATED CODE ***/
819 #define is_QUOTEMETA_high_part1(s)                                          \
820 ( ( 0xCB == ((const U8*)s)[0] ) ?                                           \
821     ( ( ( ( ((const U8*)s)[1] & 0xE7 ) == 0x41 ) || ( ( ((const U8*)s)[1] & 0xCE ) == 0x42 ) || ((const U8*)s)[1] == 0x4A || ( ( ((const U8*)s)[1] & 0xFC ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ( ( ((const U8*)s)[1] & 0xFC ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFE ) == 0x68 ) || ((const U8*)s)[1] == 0x71 ) ?\
822         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
823     : ( 0x6A == ((const U8*)s)[1] ) ?                                       \
824         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x64 ) ) ? 3 : 0 )\
825     : ( ( 0x70 == ((const U8*)s)[1] ) && ( ( 0x63 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
826 : ( 0xCC == ((const U8*)s)[0] ) ?                                           \
827     ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
828 : ( 0xCD == ((const U8*)s)[0] ) ?                                           \
829     ( ( ( ( 0x57 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x62 == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
830 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
831     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
832         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) || ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
833     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
834         ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
835     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
836 : ( 0xDD == ((const U8*)s)[0] ) ?                                           \
837     ( ( 0x73 == ((const U8*)s)[1] ) ?                                       \
838         ( ( 0x4A == ((const U8*)s)[2] ) ?                                   \
839             ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ? 4 : 0 )            \
840         : ( 0x57 == ((const U8*)s)[2] ) ?                                   \
841             ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
842         : ( 0x59 == ((const U8*)s)[2] ) ?                                   \
843             ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 )            \
844         : ( 0x66 == ((const U8*)s)[2] ) ?                                   \
845             ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
846         : ( 0x71 == ((const U8*)s)[2] ) ?                                   \
847             ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
848         : ( ( 0x73 == ((const U8*)s)[2] ) && ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x67 ) ) ) ? 4 : 0 )\
849     : 0 )                                                                   \
850 : ( 0xDF == ((const U8*)s)[0] ) ?                                           \
851     ( ( 0x56 == ((const U8*)s)[1] ) ?                                       \
852         ( ( ( 0x46 == ((const U8*)s)[2] ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
853     : ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x69 ) ) ? 4 : 0 )\
854 : ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( ((const U8*)s)[3] & 0xFC ) == 0x70 ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( ((const U8*)s)[4] & 0xFC ) == 0x70 ) ) ? 5 : 0 )
855
856
857 /*** GENERATED CODE ***/
858 #define is_QUOTEMETA_high(s)                                                \
859 ( ( 0xB1 == ((const U8*)s)[0] ) ?                                           \
860     ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
861 : ( 0xB8 == ((const U8*)s)[0] ) ?                                           \
862     ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
863 : ( 0xBB == ((const U8*)s)[0] ) ?                                           \
864     ( ( 0x51 == ((const U8*)s)[1] ) ?                                       \
865         ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
866     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
867 : ( 0xBC == ((const U8*)s)[0] ) ?                                           \
868     ( ( 0x63 == ((const U8*)s)[1] ) ?                                       \
869         ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
870     : ( ( 0x71 == ((const U8*)s)[1] ) && ( 0x63 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
871 : ( 0xBE == ((const U8*)s)[0] ) ?                                           \
872     ( ( ( 0x41 == ((const U8*)s)[1] ) && ( 0x52 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
873 : ( 0xCA == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
874
875 /*
876         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
877
878         &regcharclass_multi_char_folds::multi_char_folds(1)
879 */
880 /*** GENERATED CODE ***/
881 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
882 ( ( 0x86 == ((const U8*)s)[1] ) ?                                           \
883             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
884         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
885
886
887 /*** GENERATED CODE ***/
888 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
889 ( ( 0x88 == ((const U8*)s)[0] ) ?                                           \
890         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
891     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
892         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
893     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
894         ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
895     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
896         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
897     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
898         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
899     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
900         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
901     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
902         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
903     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
904         ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
905     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
906         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
907             ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
908         : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
909             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
910                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
911                     ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
912                 : 0 )                                                       \
913             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
914         : ( 0x68 == ((const U8*)s)[1] ) ?                                   \
915             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
916                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
917                     ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
918                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
919                     : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
920                 : 0 )                                                       \
921             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
922         : 0 )                                                               \
923     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
924         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
925             ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
926         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
927             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
928                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
929                     ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
930                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
931                     : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
932                 : ( 0x62 == ((const U8*)s)[3] ) ?                           \
933                     ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
934                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 4 )\
935                     : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
936                 : 0 )                                                       \
937             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
938         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
939             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
940                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
941                     ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
942                 : 0 )                                                       \
943             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
944         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
945     : ( 0xB8 == ((const U8*)s)[0] ) ?                                       \
946         ( ( 0x52 == ((const U8*)s)[1] ) ?                                   \
947             ( ( 0x46 == ((const U8*)s)[2] ) ?                               \
948                 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
949             : ( 0x63 == ((const U8*)s)[2] ) ?                               \
950                 ( ( ( ( 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 )\
951             : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
952         : 0 )                                                               \
953     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
954         ( ( 0x67 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ?      \
955             ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
956         : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 )\
957     : 0 )
958
959
960 /*** GENERATED CODE ***/
961 #define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e)                             \
962 ( ( 0x81 == ((const U8*)s)[0] ) ?                                           \
963         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
964     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
965         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
966             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
967         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
968     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
969         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
970     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
971         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
972     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
973         ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
974     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
975         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
976     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
977         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
978     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
979         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
980     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
981         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
982     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
983         ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
984     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
985         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
986             ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
987         : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
988             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
989                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
990             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
991         : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
992     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
993         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
994             ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
995         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
996             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
997                 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
998             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
999         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1000             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
1001                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1002             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1003         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1004     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
1005         ( ( 0x67 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ?      \
1006             ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1007         : ( ( ( ( 0x6A == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 )\
1008     : 0 )
1009
1010
1011 /*** GENERATED CODE ***/
1012 #define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e)                             \
1013 ( ((e)-(s) > 3) ?                                                           \
1014     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1015         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1016     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1017         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1018             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1019         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1020     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1021         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1022     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1023         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1024     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
1025         ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1026     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1027         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1028     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1029         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1030     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1031         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1032     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1033         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1034     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
1035         ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1036     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1037         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1038             ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1039         : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
1040             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
1041                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1042             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1043         : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1044     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
1045         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1046             ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1047         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1048             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1049                 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1050             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1051         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1052             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
1053                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1054             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1055         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1056     : 0 )                                                                   \
1057 : ((e)-(s) > 2) ?                                                           \
1058     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1059         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1060     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1061         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1062             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1063         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1064     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1065         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1066     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1067         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1068     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1069         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1070     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1071         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1072     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1073         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1074     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1075         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1076     : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1077 : ((e)-(s) > 1) ?                                                           \
1078     ( ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1079         ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1080     : ( ( 0xA2 == ((const U8*)s)[0] ) && ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
1081 : 0 )
1082
1083
1084 /*** GENERATED CODE ***/
1085 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
1086 ( ((e)-(s) > 5) ?                                                           \
1087     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1088         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1089     : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
1090 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
1091
1092 /*
1093         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1094
1095         &regcharclass_multi_char_folds::multi_char_folds(0)
1096 */
1097 /*** GENERATED CODE ***/
1098 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
1099 ( ((e)-(s) > 2) ?                                                           \
1100     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1101         ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ?                        \
1102             ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1103         : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1104     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1105 : ((e)-(s) > 1) ?                                                           \
1106     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1107         ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1108     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1109 : 0 )
1110
1111 /*
1112         FOLDS_TO_MULTI: characters that fold to multi-char strings
1113
1114         \p{_Perl_Folds_To_Multi_Char}
1115 */
1116 /*** GENERATED CODE ***/
1117 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
1118 ( ( 0x8A == ((const U8*)s)[0] ) ?                                           \
1119     ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1120 : ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] || ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ) ?\
1121     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1122 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1123     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1124 : ( 0xB8 == ((const U8*)s)[0] ) ?                                           \
1125     ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1126 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1127     ( ( 0x63 == ((const U8*)s)[1] ) ?                                       \
1128         ( ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )\
1129     : ( 0x69 == ((const U8*)s)[1] ) ?                                       \
1130         ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x65 == ((const U8*)s)[2] ) ? 3 : 0 )\
1131     : ( 0x70 == ((const U8*)s)[1] ) ?                                       \
1132         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ? 3 : 0 )\
1133     : ( 0x71 == ((const U8*)s)[1] ) ?                                       \
1134         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) || 0x59 == ((const U8*)s)[2] || ( ((const U8*)s)[2] & 0xFE ) == 0x62 || ( 0x65 == ((const U8*)s)[2] || 0x66 == ((const U8*)s)[2] ) || 0x70 == ((const U8*)s)[2] ) ? 3 : 0 )\
1135     : ( 0x72 == ((const U8*)s)[1] ) ?                                       \
1136         ( ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xFE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x53 || ((const U8*)s)[2] == 0x59 || ( ( ((const U8*)s)[2] & 0xFB ) == 0x62 ) || ((const U8*)s)[2] == 0x65 ) ? 3 : 0 )\
1137     : ( ( 0x73 == ((const U8*)s)[1] ) && ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xFE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x59 || ( ( ((const U8*)s)[2] & 0xFE ) == 0x62 ) || ((const U8*)s)[2] == 0x65 || ((const U8*)s)[2] == 0x66 || ((const U8*)s)[2] == 0x70 ) ) ? 3 : 0 )\
1138 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )
1139
1140 /*
1141         PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1142
1143         \p{_Perl_Problematic_Locale_Folds}
1144 */
1145 /*** GENERATED CODE ***/
1146 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
1147 ( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
1148 : ( 0x80 == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0x8A ) ?   \
1149     ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
1150 : ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] ) ?              \
1151     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1152 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1153     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1154 : ( 0x8F == ((const U8*)s)[0] ) ?                                           \
1155     ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1156 : ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ?              \
1157     ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1158 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1159     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1160 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1161     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1162 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
1163
1164 /*** GENERATED CODE ***/
1165 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
1166 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1167 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1168 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1169 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1170 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1171 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1172 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1173 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1174 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
1175 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1176 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1177 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1178
1179 /*
1180         PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1181
1182         \p{_Perl_Problematic_Locale_Foldeds_Start}
1183 */
1184 /*** GENERATED CODE ***/
1185 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
1186 ( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xCC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0xAD ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
1187 : ( 0x80 == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0x8A ) ?   \
1188     ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( ((const U8*)s)[1] & 0xFC ) == 0x70 ) ? 2 : 0 )\
1189 : ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] ) ?              \
1190     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1191 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1192     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1193 : ( 0x8F == ((const U8*)s)[0] ) ?                                           \
1194     ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1195 : ( 0xAB == ((const U8*)s)[0] || ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ) ?\
1196     ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1197 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1198     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1199 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1200     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1201 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x67 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
1202
1203 /*** GENERATED CODE ***/
1204 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
1205 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1206 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1207 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1208 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1209 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1210 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1211 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
1212 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1213 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1214 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
1215 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1216 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1217 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1218
1219 /*
1220         PATWS: pattern white space
1221
1222         \p{_Perl_PatWS}
1223 */
1224 /*** GENERATED CODE ***/
1225 #define is_PATWS_safe(s,e,is_utf8)                                          \
1226 ( ( LIKELY((e) > (s)) ) ?                                                   \
1227     ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x05 ) || ((const U8*)s)[0] == 0x0B || ( ( ((const U8*)s)[0] & 0xFE ) == 0x0C ) || ((const U8*)s)[0] == 0x25 || ((const U8*)s)[0] == 0x40 ) ? 1\
1228     : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
1229                     ( ( 0x55 == ((const U8*)s)[2] || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1230                 : ( ( 0x42 == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
1231 : 0 )
1232
1233 /*** GENERATED CODE ***/
1234 #define is_PATWS_cp(cp)                                                     \
1235 ( 0x05 == cp || ( 0x05 < cp &&                                              \
1236 ( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
1237 ( 0x15 == cp || ( 0x15 < cp &&                                              \
1238 ( 0x25 == cp || ( 0x25 < cp &&                                              \
1239 ( 0x40 == cp || ( 0x40 < cp &&                                              \
1240 ( 0x200E == cp || ( 0x200E < cp &&                                          \
1241 ( 0x200F == cp || ( 0x200F < cp &&                                          \
1242 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1243
1244 #endif  /* EBCDIC 1047 */
1245
1246 #if 'A' == 193 /* EBCDIC 037 */ \
1247      && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
1248      && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
1249      && '$' == 91 && '@' == 124 && '`' == 121
1250 /*
1251         LNBREAK: Line Break: \R
1252
1253         "\x0D\x0A"      # CRLF - Network (Windows) line ending
1254         \p{VertSpace}
1255 */
1256 /*** GENERATED CODE ***/
1257 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
1258 ( ((e)-(s) > 2) ?                                                           \
1259     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1260     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1261         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1262     : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1263 : ((e)-(s) > 1) ?                                                           \
1264     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1265     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1266         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1267     : 0 )                                                                   \
1268 : ((e)-(s) > 0) ?                                                           \
1269     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1270 : 0 )
1271
1272 /*** GENERATED CODE ***/
1273 #define is_LNBREAK_utf8_safe(s,e)                                           \
1274 ( ((e)-(s) > 2) ?                                                           \
1275     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1276     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1277         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1278     : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1279 : ((e)-(s) > 1) ?                                                           \
1280     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1281     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1282         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1283     : 0 )                                                                   \
1284 : ((e)-(s) > 0) ?                                                           \
1285     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1286 : 0 )
1287
1288 /*** GENERATED CODE ***/
1289 #define is_LNBREAK_latin1_safe(s,e)                                         \
1290 ( ((e)-(s) > 1) ?                                                           \
1291     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1292     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1293         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1294     : 0 )                                                                   \
1295 : ((e)-(s) > 0) ?                                                           \
1296     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1297 : 0 )
1298
1299 /*
1300         HORIZWS: Horizontal Whitespace: \h \H
1301
1302         \p{HorizSpace}
1303 */
1304 /*** GENERATED CODE ***/
1305 #define is_HORIZWS_high(s)                                                  \
1306 ( ( 0xBD == ((const U8*)s)[0] ) ?                                           \
1307     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1308 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1309     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
1310         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
1311     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1312         ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
1313     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1314 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1315
1316 /*** GENERATED CODE ***/
1317 #define is_HORIZWS_cp_high(cp)                                              \
1318 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
1319 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
1320 ( 0x202F == cp || ( 0x202F < cp &&                                          \
1321 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
1322
1323 /*
1324         VERTWS: Vertical Whitespace: \v \V
1325
1326         \p{VertSpace}
1327 */
1328 /*** GENERATED CODE ***/
1329 #define is_VERTWS_high(s)                                                   \
1330 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )
1331
1332 /*** GENERATED CODE ***/
1333 #define is_VERTWS_cp_high(cp)                                               \
1334 ( 0x2028 == cp || 0x2029 == cp )
1335
1336 /*
1337         XDIGIT: Hexadecimal digits
1338
1339         \p{XDigit}
1340 */
1341 /*** GENERATED CODE ***/
1342 #define is_XDIGIT_high(s)                                                   \
1343 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\
1344             ( ( ( ( ((const U8*)s)[3] & 0xF7 ) == 0x57 ) || ( ( ((const U8*)s)[3] & 0xFE ) == 0x58 ) || ( ( ((const U8*)s)[3] & 0xFE ) == 0x62 ) || ( ( ((const U8*)s)[3] & 0xFC ) == 0x64 ) ) ? 4 : 0 )\
1345         : ( ( 0x67 == ((const U8*)s)[2] || 0x68 == ((const U8*)s)[2] ) && ( 0x42 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
1346
1347 /*** GENERATED CODE ***/
1348 #define is_XDIGIT_cp_high(cp)                                               \
1349 ( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
1350 ( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
1351
1352 /*
1353         XPERLSPACE: \p{XPerlSpace}
1354
1355         \p{XPerlSpace}
1356 */
1357 /*** GENERATED CODE ***/
1358 #define is_XPERLSPACE_high(s)                                               \
1359 ( ( 0xBD == ((const U8*)s)[0] ) ?                                           \
1360     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1361 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1362     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
1363         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
1364     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1365         ( ( ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1366     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1367 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1368
1369 /*** GENERATED CODE ***/
1370 #define is_XPERLSPACE_cp_high(cp)                                           \
1371 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
1372 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
1373 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
1374 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
1375 ( 0x202F == cp || ( 0x202F < cp &&                                          \
1376 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
1377
1378 /*
1379         REPLACEMENT: Unicode REPLACEMENT CHARACTER
1380
1381         0xFFFD
1382 */
1383 /*** GENERATED CODE ***/
1384 #define is_REPLACEMENT_utf8_safe(s,e)                                       \
1385 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( 0x72 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x70 == ((const U8*)s)[3] ) ) ? 4 : 0 )
1386
1387 /*
1388         NONCHAR: Non character code points
1389
1390         \p{_Perl_Nchar}
1391 */
1392 /*** GENERATED CODE ***/
1393 #define is_NONCHAR_utf8_safe(s,e)                                           \
1394 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
1395             ( ( 0x72 == ((const U8*)s)[1] ) ?                               \
1396                 ( ( 0x55 == ((const U8*)s)[2] ) ?                           \
1397                     ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ? 4 : 0 )\
1398                 : ( 0x56 == ((const U8*)s)[2] ) ?                           \
1399                     ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
1400                 : ( ( 0x72 == ((const U8*)s)[2] ) && ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1401             : 0 )                                                           \
1402         : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
1403             ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1404         : ( 0xED == ((const U8*)s)[0] ) ?                                   \
1405             ( ( ( ( ( ((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] ) ) && ( 0x71 == ((const U8*)s)[4] || 0x72 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1406         : ( ( ( ( ( 0xEE == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) && ( 0x71 == ((const U8*)s)[4] || 0x72 == ((const U8*)s)[4] ) ) ? 5 : 0 ) : 0 )
1407
1408 /*
1409         SURROGATE: Surrogate code points
1410
1411         \p{_Perl_Surrogate}
1412 */
1413 /*** GENERATED CODE ***/
1414 #define is_SURROGATE_utf8_safe(s,e)                                         \
1415 ( ( ( ( ( ( ((e) - (s)) >= 4 ) && ( 0xDD == ((const U8*)s)[0] ) ) && ( ( ((const U8*)s)[1] & 0xFE ) == 0x64 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) ? 4 : 0 )
1416
1417 /*
1418         QUOTEMETA: Meta-characters that \Q should quote
1419
1420         \p{_Perl_Quotemeta}
1421 */
1422 /*** GENERATED CODE ***/
1423 #define is_QUOTEMETA_high_part0(s)                                          \
1424 ( ( 0x41 == ((const U8*)s)[1] || ( 0x54 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ?\
1425         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1426     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1427         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFE ) == 0x70 ) ? 3 : 0 )\
1428     : ( 0x43 == ((const U8*)s)[1] ) ?                                       \
1429         ( ( ( 0x42 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x63 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1430     : ( 0x44 == ((const U8*)s)[1] ) ?                                       \
1431         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
1432     : ( ( 0x53 == ((const U8*)s)[1] ) && ( ( 0x57 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )
1433
1434
1435 /*** GENERATED CODE ***/
1436 #define is_QUOTEMETA_high_part1(s)                                          \
1437 ( ( 0xCB == ((const U8*)s)[0] ) ?                                           \
1438     ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x43 ) || ( 0x49 == ((const U8*)s)[1] || 0x4A == ((const U8*)s)[1] ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x68 ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ?\
1439         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1440     : ( 0x69 == ((const U8*)s)[1] ) ?                                       \
1441         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( ((const U8*)s)[2] & 0xFE ) == 0x62 ) ? 3 : 0 )\
1442     : ( ( 0x6A == ((const U8*)s)[1] ) && ( ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1443 : ( 0xCC == ((const U8*)s)[0] ) ?                                           \
1444     ( ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1445 : ( 0xCD == ((const U8*)s)[0] ) ?                                           \
1446     ( ( ( ( ( ((const U8*)s)[1] & 0xF7 ) == 0x57 ) || ( ( ((const U8*)s)[1] & 0xFE ) == 0x58 ) ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ) ? 3 : 0 )\
1447 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
1448     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
1449         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) || ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1450     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1451         ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
1452     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1453 : ( 0xDD == ((const U8*)s)[0] ) ?                                           \
1454     ( ( 0x72 == ((const U8*)s)[1] ) ?                                       \
1455         ( ( 0x4A == ((const U8*)s)[2] ) ?                                   \
1456             ( ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ? 4 : 0 )\
1457         : ( 0x57 == ((const U8*)s)[2] ) ?                                   \
1458             ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
1459         : ( 0x59 == ((const U8*)s)[2] ) ?                                   \
1460             ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 )            \
1461         : ( 0x65 == ((const U8*)s)[2] ) ?                                   \
1462             ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
1463         : ( 0x70 == ((const U8*)s)[2] ) ?                                   \
1464             ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
1465         : ( ( 0x72 == ((const U8*)s)[2] ) && ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x66 ) ) ) ? 4 : 0 )\
1466     : 0 )                                                                   \
1467 : ( 0xDF == ((const U8*)s)[0] ) ?                                           \
1468     ( ( 0x56 == ((const U8*)s)[1] ) ?                                       \
1469         ( ( ( 0x46 == ((const U8*)s)[2] ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
1470     : ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x68 ) ) ) ? 4 : 0 )\
1471 : ( ( ( ( ( 0xED == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x44 ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x72 ) ) ) && ( ( 0x41 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x59 ) || 0x5F == ((const U8*)s)[4] || ( 0x62 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[4] && ((const U8*)s)[4] <= 0x72 ) ) ) ? 5 : 0 )
1472
1473
1474 /*** GENERATED CODE ***/
1475 #define is_QUOTEMETA_high(s)                                                \
1476 ( ( 0xAF == ((const U8*)s)[0] ) ?                                           \
1477     ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1478 : ( 0xB7 == ((const U8*)s)[0] ) ?                                           \
1479     ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1480 : ( 0xBC == ((const U8*)s)[0] ) ?                                           \
1481     ( ( 0x51 == ((const U8*)s)[1] ) ?                                       \
1482         ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
1483     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1484 : ( 0xBD == ((const U8*)s)[0] ) ?                                           \
1485     ( ( 0x62 == ((const U8*)s)[1] ) ?                                       \
1486         ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
1487     : ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0x62 ) ) ? 3 : 0 )\
1488 : ( 0xBE == ((const U8*)s)[0] ) ?                                           \
1489     ( ( ( 0x41 == ((const U8*)s)[1] ) && ( 0x52 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
1490 : ( 0xCA == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
1491
1492 /*
1493         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1494
1495         &regcharclass_multi_char_folds::multi_char_folds(1)
1496 */
1497 /*** GENERATED CODE ***/
1498 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
1499 ( ( 0x86 == ((const U8*)s)[1] ) ?                                           \
1500             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1501         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
1502
1503
1504 /*** GENERATED CODE ***/
1505 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
1506 ( ( 0x88 == ((const U8*)s)[0] ) ?                                           \
1507         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1508     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1509         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1510     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
1511         ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1512     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1513         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1514     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1515         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1516     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1517         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1518     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1519         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1520     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
1521         ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1522     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
1523         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1524             ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1525         : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
1526             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1527                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
1528                     ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1529                 : 0 )                                                       \
1530             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1531         : ( 0x67 == ((const U8*)s)[1] ) ?                                   \
1532             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1533                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
1534                     ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
1535                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
1536                     : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1537                 : 0 )                                                       \
1538             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1539         : 0 )                                                               \
1540     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1541         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1542             ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1543         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1544             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1545                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
1546                     ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
1547                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
1548                     : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1549                 : ( 0x5F == ((const U8*)s)[3] ) ?                           \
1550                     ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
1551                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 4 )\
1552                     : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1553                 : 0 )                                                       \
1554             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1555         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1556             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1557                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
1558                     ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1559                 : 0 )                                                       \
1560             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1561         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1562     : ( 0xB7 == ((const U8*)s)[0] ) ?                                       \
1563         ( ( 0x52 == ((const U8*)s)[1] ) ?                                   \
1564             ( ( 0x46 == ((const U8*)s)[2] ) ?                               \
1565                 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1566             : ( 0x62 == ((const U8*)s)[2] ) ?                               \
1567                 ( ( ( ( 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 )\
1568             : ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1569         : 0 )                                                               \
1570     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
1571         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0x66 ) ?                        \
1572             ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1573         : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 )\
1574     : 0 )
1575
1576
1577 /*** GENERATED CODE ***/
1578 #define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e)                             \
1579 ( ( 0x81 == ((const U8*)s)[0] ) ?                                           \
1580         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1581     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1582         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1583             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1584         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1585     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1586         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1587     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1588         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1589     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
1590         ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1591     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1592         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1593     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1594         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1595     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1596         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1597     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1598         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1599     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
1600         ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1601     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
1602         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1603             ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1604         : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
1605             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1606                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1607             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1608         : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1609     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1610         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1611             ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1612         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1613             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1614                 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1615             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1616         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1617             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1618                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1619             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1620         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1621     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
1622         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0x66 ) ?                        \
1623             ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1624         : ( ( ( ( 0x69 == ((const U8*)s)[1] ) && ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 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 )\
1625     : 0 )
1626
1627
1628 /*** GENERATED CODE ***/
1629 #define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e)                             \
1630 ( ((e)-(s) > 3) ?                                                           \
1631     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1632         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1633     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1634         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1635             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1636         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1637     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1638         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1639     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1640         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1641     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
1642         ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1643     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1644         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1645     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1646         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1647     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1648         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1649     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1650         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1651     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
1652         ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1653     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
1654         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1655             ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1656         : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
1657             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1658                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1659             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1660         : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1661     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1662         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1663             ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1664         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1665             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1666                 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1667             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1668         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1669             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1670                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1671             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1672         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1673     : 0 )                                                                   \
1674 : ((e)-(s) > 2) ?                                                           \
1675     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1676         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1677     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1678         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1679             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1680         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1681     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1682         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1683     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1684         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1685     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1686         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1687     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1688         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1689     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1690         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1691     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1692         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1693     : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1694 : ((e)-(s) > 1) ?                                                           \
1695     ( ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1696         ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1697     : ( ( 0xA2 == ((const U8*)s)[0] ) && ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
1698 : 0 )
1699
1700
1701 /*** GENERATED CODE ***/
1702 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
1703 ( ((e)-(s) > 5) ?                                                           \
1704     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1705         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1706     : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
1707 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
1708
1709 /*
1710         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1711
1712         &regcharclass_multi_char_folds::multi_char_folds(0)
1713 */
1714 /*** GENERATED CODE ***/
1715 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
1716 ( ((e)-(s) > 2) ?                                                           \
1717     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1718         ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ?                        \
1719             ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1720         : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1721     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1722 : ((e)-(s) > 1) ?                                                           \
1723     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1724         ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1725     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1726 : 0 )
1727
1728 /*
1729         FOLDS_TO_MULTI: characters that fold to multi-char strings
1730
1731         \p{_Perl_Folds_To_Multi_Char}
1732 */
1733 /*** GENERATED CODE ***/
1734 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
1735 ( ( 0x80 == ((const U8*)s)[0] ) ?                                           \
1736     ( ( 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1737 : ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ?\
1738     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1739 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1740     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1741 : ( 0xB7 == ((const U8*)s)[0] ) ?                                           \
1742     ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1743 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1744     ( ( 0x62 == ((const U8*)s)[1] ) ?                                       \
1745         ( ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ? 3 : 0 )\
1746     : ( 0x68 == ((const U8*)s)[1] ) ?                                       \
1747         ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ? 3 : 0 )\
1748     : ( 0x6A == ((const U8*)s)[1] ) ?                                       \
1749         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x59 ) || 0x5F == ((const U8*)s)[2] || ( 0x62 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x72 ) ) ? 3 : 0 )\
1750     : ( 0x70 == ((const U8*)s)[1] ) ?                                       \
1751         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) || 0x59 == ((const U8*)s)[2] || 0x5F == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || ( ((const U8*)s)[2] & 0xFE ) == 0x64 || 0x6A == ((const U8*)s)[2] ) ? 3 : 0 )\
1752     : ( 0x71 == ((const U8*)s)[1] ) ?                                       \
1753         ( ( ( ( ((const U8*)s)[2] & 0xFB ) == 0x43 ) || ( ( ((const U8*)s)[2] & 0xDE ) == 0x44 ) || ((const U8*)s)[2] == 0x48 || ((const U8*)s)[2] == 0x53 || ((const U8*)s)[2] == 0x59 || ((const U8*)s)[2] == 0x5F ) ? 3 : 0 )\
1754     : ( ( 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 )\
1755 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) || 0x5F == ((const U8*)s)[3] || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x65 ) ) ) ? 4 : 0 )
1756
1757 /*
1758         PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1759
1760         \p{_Perl_Problematic_Locale_Folds}
1761 */
1762 /*** GENERATED CODE ***/
1763 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
1764 ( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x5C ) || ((const U8*)s)[0] == 0x5E || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x6C ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ((const U8*)s)[0] == 0xB0 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
1765 : ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
1766     ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
1767 : ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] ) ?              \
1768     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1769 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1770     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1771 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1772     ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1773 : ( ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ?                                \
1774     ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1775 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1776     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1777 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1778     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1779 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
1780
1781 /*** GENERATED CODE ***/
1782 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
1783 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1784 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1785 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1786 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1787 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1788 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1789 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1790 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1791 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
1792 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1793 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1794 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1795
1796 /*
1797         PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1798
1799         \p{_Perl_Problematic_Locale_Foldeds_Start}
1800 */
1801 /*** GENERATED CODE ***/
1802 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
1803 ( ( ( ( ((const U8*)s)[0] & 0xC0 ) == 0x00 ) || ( ( ((const U8*)s)[0] & 0xEF ) == 0x40 ) || ( ( ((const U8*)s)[0] & 0xDF ) == 0x4B ) || ( ( ((const U8*)s)[0] & 0xFC ) == 0x4C ) || ( ( ((const U8*)s)[0] & 0xDE ) == 0x5A ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0x5C ) || ((const U8*)s)[0] == 0x5E || ( ( ((const U8*)s)[0] & 0xFE ) == 0x60 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x6C ) || ((const U8*)s)[0] == 0x79 || ( ( ((const U8*)s)[0] & 0xEF ) == 0x81 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x82 ) || ( ( ((const U8*)s)[0] & 0xEC ) == 0x84 ) || ( ( ((const U8*)s)[0] & 0xEE ) == 0x88 ) || ((const U8*)s)[0] == 0xA1 || ( ( ((const U8*)s)[0] & 0xBE ) == 0xA2 ) || ( ( ((const U8*)s)[0] & 0xBC ) == 0xA4 ) || ( ( ((const U8*)s)[0] & 0xFE ) == 0xA8 ) || ((const U8*)s)[0] == 0xB0 || ( ( ((const U8*)s)[0] & 0xFE ) == 0xBA ) || ( ( ((const U8*)s)[0] & 0xE8 ) == 0xC0 ) || ( ( ((const U8*)s)[0] & 0xCE ) == 0xC8 ) || ((const U8*)s)[0] == 0xE0 || ( ( ((const U8*)s)[0] & 0xF8 ) == 0xF0 ) || ((const U8*)s)[0] == 0xFF ) ? 1\
1804 : ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
1805     ( ( ( 0x41 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x59 ) || 0x5F == ((const U8*)s)[1] || ( 0x62 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x6A ) || ( 0x70 <= ((const U8*)s)[1] && ((const U8*)s)[1] <= 0x72 ) ) ? 2 : 0 )\
1806 : ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] ) ?              \
1807     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1808 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1809     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1810 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1811     ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1812 : ( 0xAA == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ?   \
1813     ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1814 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1815     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1816 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1817     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1818 : ( ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x71 == ((const U8*)s)[1] ) ) && ( 0x66 == ((const U8*)s)[2] ) ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 )
1819
1820 /*** GENERATED CODE ***/
1821 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
1822 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1823 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1824 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1825 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1826 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1827 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1828 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
1829 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1830 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1831 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
1832 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1833 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1834 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1835
1836 /*
1837         PATWS: pattern white space
1838
1839         \p{_Perl_PatWS}
1840 */
1841 /*** GENERATED CODE ***/
1842 #define is_PATWS_safe(s,e,is_utf8)                                          \
1843 ( ( LIKELY((e) > (s)) ) ?                                                   \
1844     ( ( ( ( ((const U8*)s)[0] & 0xEF ) == 0x05 ) || ((const U8*)s)[0] == 0x0B || ( ( ((const U8*)s)[0] & 0xFE ) == 0x0C ) || ((const U8*)s)[0] == 0x25 || ((const U8*)s)[0] == 0x40 ) ? 1\
1845     : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
1846                     ( ( 0x55 == ((const U8*)s)[2] || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1847                 : ( ( 0x42 == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
1848 : 0 )
1849
1850 /*** GENERATED CODE ***/
1851 #define is_PATWS_cp(cp)                                                     \
1852 ( 0x05 == cp || ( 0x05 < cp &&                                              \
1853 ( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
1854 ( 0x15 == cp || ( 0x15 < cp &&                                              \
1855 ( 0x25 == cp || ( 0x25 < cp &&                                              \
1856 ( 0x40 == cp || ( 0x40 < cp &&                                              \
1857 ( 0x200E == cp || ( 0x200E < cp &&                                          \
1858 ( 0x200F == cp || ( 0x200F < cp &&                                          \
1859 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1860
1861 #endif  /* EBCDIC 037 */
1862
1863 #endif /* PERL_REGCHARCLASS_H_ */
1864
1865 /* Generated from:
1866  * d34c77b7e7a94986cc82056919f4ffc1503b73091561e16bd8ef145ac0fd04c5 lib/Unicode/UCD.pm
1867  * 0bc5023a4606962114c4eb3775fae072cad8fecef5894d0de06603b1c70cbb47 lib/unicore/ArabicShaping.txt
1868  * 2c7e2fb0cb91b378f0fa9301e951946e4de68f2ab6afc68d21bcff57cd2a8ad8 lib/unicore/BidiBrackets.txt
1869  * f6d297765469724af523737c80faba3c33518fade4c5dc599e3ab51846f56916 lib/unicore/BidiMirroring.txt
1870  * 0b457b66c788a97c8521e265f0b793d4ed911356d39eb61029f9cef8554cd052 lib/unicore/Blocks.txt
1871  * 64f117a4749dd4a1b6c54277f63f6cf1e0eb45d290cbedaf777fbe71b8880885 lib/unicore/CaseFolding.txt
1872  * c84c326cea271347752edc89487c24d847fd453082dfa07d0e9e284a05a7dd0b lib/unicore/CompositionExclusions.txt
1873  * eb115a5de9a32c9ad447d6ea1cddcadb53d47f6cbc2521f3fe0bebb040c39866 lib/unicore/DAge.txt
1874  * 3406825d64564bf2a37031c36a3e0f99d708aa17595b81f8b539d0f3d1a3923f lib/unicore/DCoreProperties.txt
1875  * aad8102473e2c40b74a4aba4474a7008959963a0e51a2ee0ed4f029c8432cc6b lib/unicore/DNormalizationProps.txt
1876  * 7aa76ead56e8cd0c4055408ca3c4c268513cca8ce5d0f5ea422203f721d3caca lib/unicore/EastAsianWidth.txt
1877  * 8945581393e75bbd16ecec72e749fbb252155e1c2145a86abf24fcb308a66e7d lib/unicore/EmojiData.txt
1878  * f97d03f720230f3ff9b5c9ac89ff06bab512a91c89155bfecbf3b89fa8809ce6 lib/unicore/EquivalentUnifiedIdeograph.txt
1879  * 60b094a1ba49e4fa6397d1995e093c8699d3064e469985fb910bbdcffe0c703a lib/unicore/HangulSyllableType.txt
1880  * 902ac38970a235b415d9165f63271fb9016f709fe5fc0829b636ef608b41b0a9 lib/unicore/IndicPositionalCategory.txt
1881  * 0da7a1c8f1a6426f6c7b2193aa09b3c88ce3bf97288b62a30fa012d92f3b7f63 lib/unicore/IndicSyllabicCategory.txt
1882  * 714b385eb1c04559dcd1678bbc27ba7bea9964680224ce3dd23b969f9c8cd316 lib/unicore/Jamo.txt
1883  * 371aa0d3043ff8e2d47c2aec5ca3d44517b4c5acefc1b6ba41a8c1ae1edff323 lib/unicore/LineBreak.txt
1884  * 12617cec2de4f51d55e48ca14710b1109b8d7e58555d789c000f91d3eda1c585 lib/unicore/NameAliases.txt
1885  * 8708deafbb5e650a3d87a898d1d044294f8d280233e0dfa32e3d2a9984153f4b lib/unicore/NamedSequences.txt
1886  * 205baca4772f1935060f3d652d36956c2b7a193440428cc7bae5414e9e7198f3 lib/unicore/PropList.txt
1887  * 2a9cb9afe6a36a1a73ce2cedb540abd3fbf29f6afcda702d07fcbf561162a17a lib/unicore/PropValueAliases.txt
1888  * b370cf0c886b3c9fd679d7696a2b8026d2c959fd3857fc7f5b56cbbe31e34f6e lib/unicore/PropertyAliases.txt
1889  * 3e13406523153c85cf0b53eb24f8fe5843fb673737e184c8478b69a06da15232 lib/unicore/ScriptExtensions.txt
1890  * e9f3c0aa3c4f892b589c809cf4ae051a39921417cda6fefdbe43717b92db76d5 lib/unicore/Scripts.txt
1891  * 9f5668c3a6f3bbb88e2c07234ecfb2ec5db39e8dc5d7d04b994f6df6dbfdb5dd lib/unicore/SpecialCasing.txt
1892  * 4997a3196eb79b4d0d6b8384560f6aeb46a062693f0abd5ba736abbff7976099 lib/unicore/UnicodeData.txt
1893  * 5f520f210e8ca4e8861c12ba34740e14d737d8ba5136c08d63aa5a5bc7f2bf2a lib/unicore/VerticalOrientation.txt
1894  * 4b26c6077d85fe2eabd16b433bf957d95dc5459a8f2626075cf8d611d6f833cb lib/unicore/auxiliary/GCBTest.txt
1895  * 62f0e8bf7406d84bafee8f998faf469b84ac0cb359526a4d5eb2f2d55caec55b lib/unicore/auxiliary/GraphemeBreakProperty.txt
1896  * 1f40941482f80b58cdbc319f916b68718d33febfd5f326035bde73ecb043297c lib/unicore/auxiliary/LBTest.txt
1897  * cfa8d39787eb3e0883a40960e940d5df8ee6cdcbc8e1be5809fa74df97de8238 lib/unicore/auxiliary/SBTest.txt
1898  * 13f1769dce7c186ffb9dd830c31087f9917d1b108601aca37713514d9c6cffdd lib/unicore/auxiliary/SentenceBreakProperty.txt
1899  * 7e782466e4f13d281a3c0be9598426b0ebfdec5441843e77cb31772b8193fb0a lib/unicore/auxiliary/WBTest.txt
1900  * 6bdb70f837a40dde1336f88470766c5e0c5934fc235dca7126977817443ea961 lib/unicore/auxiliary/WordBreakProperty.txt
1901  * 9431a818be21ed42ed254a5d3b100bc372de1cd354c4873a4c50cc01f56aec39 lib/unicore/extracted/DBidiClass.txt
1902  * 1f671c893c88488cb917de2f43bcaab0b15539607eddde75ebd6dc1b236dcf0e lib/unicore/extracted/DBinaryProperties.txt
1903  * 11c8bd81ecbede4d67c7b5b693a471647d5401956707c639ae053b836cc7f5da lib/unicore/extracted/DCombiningClass.txt
1904  * 00de56bb71306f28d51c02f725dc65f4b2588eb8ccc00c829717c0d1ee9592d6 lib/unicore/extracted/DDecompositionType.txt
1905  * 7c2d15889665823996fa81a9ecc490d080c99da808d7e91f14809af932530161 lib/unicore/extracted/DEastAsianWidth.txt
1906  * 7ceab0dc8e24899a72bb1b91894e1c15e6a7c139939fefb1bcd46329f46d3758 lib/unicore/extracted/DGeneralCategory.txt
1907  * 890455619a3dd3dd380a49b087063c72a2f730e5997b5232e30dffb9dc30bd85 lib/unicore/extracted/DJoinGroup.txt
1908  * 4fd53b6fc72b633f8020a2f37e7ce1aa386ed530061b66a9d5cb11cbb3f07335 lib/unicore/extracted/DJoinType.txt
1909  * 018e20fa2f469667cc7ccd8a3d4a4a8cce8ad9bdf5fce5b2f61137660ea1065f lib/unicore/extracted/DLineBreak.txt
1910  * 88c30a794011f5e6dc62154342e8bab1bd4ce2d0c0ab06fb69ba47134dc75b23 lib/unicore/extracted/DNumType.txt
1911  * dab1e84f48990e30635a4f489d33212b25d0e35d80839c08e33a8afe5736346c lib/unicore/extracted/DNumValues.txt
1912  * aa29d36570237ec49c1fbd59d9cfafefcce690a286d3273ff4da49da1dfc88f2 lib/unicore/mktables
1913  * 7bd6bcbe3813e0cd55e0998053d182b7bc8c97dcfd0b85028e9f7f55af4ad61b lib/unicore/version
1914  * 4bb677187a1a64e39d48f2e341b5ecb6c99857e49d7a79cf503bd8a3c709999b regen/charset_translations.pl
1915  * 6b1c1caf1004a96c15218dba6cec482f36a036ed91bb545315ba280319133a80 regen/regcharclass.pl
1916  * c6b0b0b7e4ac4f5a57d203e84194749987477ea55b2366e3b343aadf8cc7d6b5 regen/regcharclass_multi_char_folds.pl
1917  * ex: set ro: */