utf8.c: Generalize static fcn return for indeterminate result
[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 #endif  /* ASCII/Latin1 */
619
620 #if 'A' == 193 /* EBCDIC 1047 */ \
621      && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
622      && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
623      && '$' == 91 && '@' == 124 && '`' == 121
624 /*
625         LNBREAK: Line Break: \R
626
627         "\x0D\x0A"      # CRLF - Network (Windows) line ending
628         \p{VertSpace}
629 */
630 /*** GENERATED CODE ***/
631 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
632 ( ((e)-(s) > 2) ?                                                           \
633     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
634     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
635         ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
636     : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
637 : ((e)-(s) > 1) ?                                                           \
638     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
639     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
640         ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
641     : 0 )                                                                   \
642 : ((e)-(s) > 0) ?                                                           \
643     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
644 : 0 )
645
646 /*** GENERATED CODE ***/
647 #define is_LNBREAK_utf8_safe(s,e)                                           \
648 ( ((e)-(s) > 2) ?                                                           \
649     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
650     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
651         ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
652     : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
653 : ((e)-(s) > 1) ?                                                           \
654     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
655     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
656         ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
657     : 0 )                                                                   \
658 : ((e)-(s) > 0) ?                                                           \
659     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
660 : 0 )
661
662 /*** GENERATED CODE ***/
663 #define is_LNBREAK_latin1_safe(s,e)                                         \
664 ( ((e)-(s) > 1) ?                                                           \
665     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
666     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
667         ( ( 0x15 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
668     : 0 )                                                                   \
669 : ((e)-(s) > 0) ?                                                           \
670     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
671 : 0 )
672
673 /*
674         HORIZWS: Horizontal Whitespace: \h \H
675
676         \p{HorizSpace}
677 */
678 /*** GENERATED CODE ***/
679 #define is_HORIZWS_high(s)                                                  \
680 ( ( 0xBC == ((const U8*)s)[0] ) ?                                           \
681     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
682 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
683     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
684         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
685     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
686         ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
687     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
688 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
689
690 /*** GENERATED CODE ***/
691 #define is_HORIZWS_cp_high(cp)                                              \
692 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
693 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
694 ( 0x202F == cp || ( 0x202F < cp &&                                          \
695 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
696
697 /*
698         VERTWS: Vertical Whitespace: \v \V
699
700         \p{VertSpace}
701 */
702 /*** GENERATED CODE ***/
703 #define is_VERTWS_high(s)                                                   \
704 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )
705
706 /*** GENERATED CODE ***/
707 #define is_VERTWS_cp_high(cp)                                               \
708 ( 0x2028 == cp || 0x2029 == cp )
709
710 /*
711         XDIGIT: Hexadecimal digits
712
713         \p{XDigit}
714 */
715 /*** GENERATED CODE ***/
716 #define is_XDIGIT_high(s)                                                   \
717 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x73 == ((const U8*)s)[1] ) ) ? ( ( 0x67 == ((const U8*)s)[2] ) ?\
718             ( ( ( 0x57 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x59 ) || ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x68 ) ) ? 4 : 0 )\
719         : ( ( ( ((const U8*)s)[2] & 0xFE ) == 0x68 ) && ( 0x42 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
720
721 /*** GENERATED CODE ***/
722 #define is_XDIGIT_cp_high(cp)                                               \
723 ( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
724 ( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
725
726 /*
727         XPERLSPACE: \p{XPerlSpace}
728
729         \p{XPerlSpace}
730 */
731 /*** GENERATED CODE ***/
732 #define is_XPERLSPACE_high(s)                                               \
733 ( ( 0xBC == ((const U8*)s)[0] ) ?                                           \
734     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
735 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
736     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
737         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
738     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
739         ( ( ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
740     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
741 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
742
743 /*** GENERATED CODE ***/
744 #define is_XPERLSPACE_cp_high(cp)                                           \
745 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
746 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
747 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
748 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
749 ( 0x202F == cp || ( 0x202F < cp &&                                          \
750 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
751
752 /*
753         REPLACEMENT: Unicode REPLACEMENT CHARACTER
754
755         0xFFFD
756 */
757 /*** GENERATED CODE ***/
758 #define is_REPLACEMENT_utf8_safe(s,e)                                       \
759 ( ( ( ( ( ( ((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 )
760
761 /*
762         NONCHAR: Non character code points
763
764         \p{_Perl_Nchar}
765 */
766 /*** GENERATED CODE ***/
767 #define is_NONCHAR_utf8_safe(s,e)                                           \
768 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
769             ( ( 0x73 == ((const U8*)s)[1] ) ?                               \
770                 ( ( 0x55 == ((const U8*)s)[2] ) ?                           \
771                     ( ( ( 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 )\
772                 : ( 0x56 == ((const U8*)s)[2] ) ?                           \
773                     ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
774                 : ( ( 0x73 == ((const U8*)s)[2] ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
775             : 0 )                                                           \
776         : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
777             ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ) ? 4 : 0 )\
778         : ( 0xED == ((const U8*)s)[0] ) ?                                   \
779             ( ( ( ( ( ((const U8*)s)[1] == 0x4A || ((const U8*)s)[1] == 0x52 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x54 ) || ((const U8*)s)[1] == 0x58 || ((const U8*)s)[1] == 0x62 || ( ( ((const U8*)s)[1] & 0xFD ) == 0x64 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x68 ) || ( ( ((const U8*)s)[1] & 0xFD ) == 0x71 ) ) && ( 0x73 == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) && ( ( ((const U8*)s)[4] & 0xFE ) == 0x72 ) ) ? 5 : 0 )\
780         : ( ( ( ( ( 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 )
781
782 /*
783         SURROGATE: Surrogate code points
784
785         \p{_Perl_Surrogate}
786 */
787 /*** GENERATED CODE ***/
788 #define is_SURROGATE_utf8_safe(s,e)                                         \
789 ( ( ( ( ( ( ((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 )
790
791 /*
792         QUOTEMETA: Meta-characters that \Q should quote
793
794         \p{_Perl_Quotemeta}
795 */
796 /*** GENERATED CODE ***/
797 #define is_QUOTEMETA_high_part0(s)                                          \
798 ( ( 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 ) ?\
799         ( ( ( 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 )\
800     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
801         ( ( ( 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 )\
802     : ( 0x43 == ((const U8*)s)[1] ) ?                                       \
803         ( ( ( 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 )\
804     : ( 0x44 == ((const U8*)s)[1] ) ?                                       \
805         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
806     : ( ( 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 )
807
808
809 /*** GENERATED CODE ***/
810 #define is_QUOTEMETA_high_part1(s)                                          \
811 ( ( 0xCB == ((const U8*)s)[0] ) ?                                           \
812     ( ( ( ( ((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 ) ?\
813         ( ( ( 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 )\
814     : ( 0x6A == ((const U8*)s)[1] ) ?                                       \
815         ( ( ( 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 )\
816     : ( ( 0x70 == ((const U8*)s)[1] ) && ( ( 0x63 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x6A ) || ( ((const U8*)s)[2] & 0xFC ) == 0x70 ) ) ? 3 : 0 )\
817 : ( 0xCC == ((const U8*)s)[0] ) ?                                           \
818     ( ( ( ( 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 )\
819 : ( 0xCD == ((const U8*)s)[0] ) ?                                           \
820     ( ( ( ( 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 )\
821 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
822     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
823         ( ( ( 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 )\
824     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
825         ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
826     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
827 : ( 0xDD == ((const U8*)s)[0] ) ?                                           \
828     ( ( 0x73 == ((const U8*)s)[1] ) ?                                       \
829         ( ( 0x4A == ((const U8*)s)[2] ) ?                                   \
830             ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x72 ) ? 4 : 0 )            \
831         : ( 0x57 == ((const U8*)s)[2] ) ?                                   \
832             ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
833         : ( 0x59 == ((const U8*)s)[2] ) ?                                   \
834             ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 )            \
835         : ( 0x66 == ((const U8*)s)[2] ) ?                                   \
836             ( ( 0x73 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
837         : ( 0x71 == ((const U8*)s)[2] ) ?                                   \
838             ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
839         : ( ( 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 )\
840     : 0 )                                                                   \
841 : ( 0xDF == ((const U8*)s)[0] ) ?                                           \
842     ( ( 0x56 == ((const U8*)s)[1] ) ?                                       \
843         ( ( ( 0x46 == ((const U8*)s)[2] ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
844     : ( ( ( 0x63 == ((const U8*)s)[1] ) && ( 0x52 == ((const U8*)s)[2] ) ) && ( 0x62 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x69 ) ) ? 4 : 0 )\
845 : ( ( ( ( ( 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 )
846
847
848 /*** GENERATED CODE ***/
849 #define is_QUOTEMETA_high(s)                                                \
850 ( ( 0xB1 == ((const U8*)s)[0] ) ?                                           \
851     ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
852 : ( 0xB8 == ((const U8*)s)[0] ) ?                                           \
853     ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x70 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
854 : ( 0xBB == ((const U8*)s)[0] ) ?                                           \
855     ( ( 0x51 == ((const U8*)s)[1] ) ?                                       \
856         ( ( 0x73 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
857     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
858 : ( 0xBC == ((const U8*)s)[0] ) ?                                           \
859     ( ( 0x63 == ((const U8*)s)[1] ) ?                                       \
860         ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
861     : ( ( 0x71 == ((const U8*)s)[1] ) && ( 0x63 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
862 : ( 0xBE == ((const U8*)s)[0] ) ?                                           \
863     ( ( ( 0x41 == ((const U8*)s)[1] ) && ( 0x52 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
864 : ( 0xCA == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
865
866 /*
867         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
868
869         &regcharclass_multi_char_folds::multi_char_folds(1)
870 */
871 /*** GENERATED CODE ***/
872 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
873 ( ( 0x86 == ((const U8*)s)[1] ) ?                                           \
874             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
875         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
876
877
878 /*** GENERATED CODE ***/
879 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
880 ( ( 0x88 == ((const U8*)s)[0] ) ?                                           \
881         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
882     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
883         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
884     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
885         ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
886     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
887         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
888     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
889         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
890     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
891         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
892     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
893         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
894     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
895         ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
896     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
897         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
898             ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
899         : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
900             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
901                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
902                     ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
903                 : 0 )                                                       \
904             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
905         : ( 0x68 == ((const U8*)s)[1] ) ?                                   \
906             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
907                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
908                     ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
909                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
910                     : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
911                 : 0 )                                                       \
912             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
913         : 0 )                                                               \
914     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
915         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
916             ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
917         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
918             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
919                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
920                     ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
921                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
922                     : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
923                 : ( 0x62 == ((const U8*)s)[3] ) ?                           \
924                     ( ( 0xAF == ((const U8*)s)[4] ) ?                       \
925                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 4 )\
926                     : ( ( 0xB1 == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
927                 : 0 )                                                       \
928             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
929         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
930             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
931                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
932                     ( ( ( 0xB4 == ((const U8*)s)[4] ) && ( 0x68 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
933                 : 0 )                                                       \
934             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
935         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
936     : ( 0xB8 == ((const U8*)s)[0] ) ?                                       \
937         ( ( 0x52 == ((const U8*)s)[1] ) ?                                   \
938             ( ( 0x46 == ((const U8*)s)[2] ) ?                               \
939                 ( ( ( ( 0xB8 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
940             : ( 0x63 == ((const U8*)s)[2] ) ?                               \
941                 ( ( ( ( 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 )\
942             : ( ( ( ( 0x72 == ((const U8*)s)[2] ) && ( 0xB8 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x65 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
943         : 0 )                                                               \
944     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
945         ( ( 0x67 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ?      \
946             ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
947         : ( ( ( ( 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 )\
948     : 0 )
949
950
951 /*** GENERATED CODE ***/
952 #define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e)                             \
953 ( ( 0x81 == ((const U8*)s)[0] ) ?                                           \
954         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
955     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
956         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
957             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
958         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
959     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
960         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
961     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
962         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
963     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
964         ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
965     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
966         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
967     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
968         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
969     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
970         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
971     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
972         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
973     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
974         ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
975     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
976         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
977             ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
978         : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
979             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
980                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
981             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
982         : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
983     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
984         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
985             ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
986         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
987             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
988                 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
989             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
990         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
991             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
992                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
993             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
994         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
995     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
996         ( ( 0x67 == ((const U8*)s)[1] || 0x68 == ((const U8*)s)[1] ) ?      \
997             ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB4 == ((const U8*)s)[3] ) ) && ( 0x68 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
998         : ( ( ( ( 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 )\
999     : 0 )
1000
1001
1002 /*** GENERATED CODE ***/
1003 #define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e)                             \
1004 ( ((e)-(s) > 3) ?                                                           \
1005     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1006         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1007     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1008         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1009             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1010         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1011     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1012         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1013     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1014         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1015     : ( 0x8F == ((const U8*)s)[0] ) ?                                       \
1016         ( ( ( ( 0x73 == ((const U8*)s)[1] ) && ( 0x8F == ((const U8*)s)[2] ) ) && ( 0x73 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1017     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1018         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1019     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1020         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1021     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1022         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1023     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1024         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1025     : ( 0xAB == ((const U8*)s)[0] ) ?                                       \
1026         ( ( ( 0x70 == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1027     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1028         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1029             ( ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1030         : ( 0x58 == ((const U8*)s)[1] || 0x66 == ((const U8*)s)[1] ) ?      \
1031             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
1032                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1033             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1034         : ( ( ( 0x68 == ((const U8*)s)[1] ) && ( 0xB1 == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1035     : ( 0xB5 == ((const U8*)s)[0] ) ?                                       \
1036         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1037             ( ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x62 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1038         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1039             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1040                 ( ( 0x62 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1041             : ( ( 0xB1 == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1042         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1043             ( ( 0xB1 == ((const U8*)s)[2] ) ?                               \
1044                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1045             : ( ( 0xB4 == ((const U8*)s)[2] ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1046         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB4 == ((const U8*)s)[2] ) ) && ( 0x68 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1047     : 0 )                                                                   \
1048 : ((e)-(s) > 2) ?                                                           \
1049     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1050         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1051     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1052         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1053             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1054         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1055     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1056         ( ( ( 0xB0 == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1057     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1058         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1059     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1060         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1061     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1062         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1063     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1064         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1065     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1066         ( ( ( 0xAF == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1067     : ( ( ( 0xAB == ((const U8*)s)[0] ) && ( 0x70 == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1068 : ((e)-(s) > 1) ?                                                           \
1069     ( ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1070         ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1071     : ( ( 0xA2 == ((const U8*)s)[0] ) && ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
1072 : 0 )
1073
1074
1075 /*** GENERATED CODE ***/
1076 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
1077 ( ((e)-(s) > 5) ?                                                           \
1078     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1079         ( ( ( 0xAB == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1080     : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
1081 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
1082
1083 /*
1084         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1085
1086         &regcharclass_multi_char_folds::multi_char_folds(0)
1087 */
1088 /*** GENERATED CODE ***/
1089 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
1090 ( ((e)-(s) > 2) ?                                                           \
1091     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1092         ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ?                        \
1093             ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1094         : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1095     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1096 : ((e)-(s) > 1) ?                                                           \
1097     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1098         ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1099     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1100 : 0 )
1101
1102 /*
1103         FOLDS_TO_MULTI: characters that fold to multi-char strings
1104
1105         \p{_Perl_Folds_To_Multi_Char}
1106 */
1107 /*** GENERATED CODE ***/
1108 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
1109 ( ( 0x8A == ((const U8*)s)[0] ) ?                                           \
1110     ( ( 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1111 : ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] || ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ) ?\
1112     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1113 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1114     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1115 : ( 0xB8 == ((const U8*)s)[0] ) ?                                           \
1116     ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1117 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1118     ( ( 0x63 == ((const U8*)s)[1] ) ?                                       \
1119         ( ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )\
1120     : ( 0x69 == ((const U8*)s)[1] ) ?                                       \
1121         ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x63 == ((const U8*)s)[2] || 0x65 == ((const U8*)s)[2] ) ? 3 : 0 )\
1122     : ( 0x70 == ((const U8*)s)[1] ) ?                                       \
1123         ( ( ( 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 )\
1124     : ( 0x71 == ((const U8*)s)[1] ) ?                                       \
1125         ( ( ( 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 )\
1126     : ( 0x72 == ((const U8*)s)[1] ) ?                                       \
1127         ( ( ( ( ((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 )\
1128     : ( ( 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 )\
1129 : ( ( ( ( 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 )
1130
1131 /*
1132         PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1133
1134         \p{_Perl_Problematic_Locale_Folds}
1135 */
1136 /*** GENERATED CODE ***/
1137 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
1138 ( ( ( ( ((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\
1139 : ( 0x80 == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0x8A ) ?   \
1140     ( ( ( 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 )\
1141 : ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] ) ?              \
1142     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1143 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1144     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1145 : ( 0x8F == ((const U8*)s)[0] ) ?                                           \
1146     ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1147 : ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ?              \
1148     ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1149 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1150     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1151 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1152     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1153 : ( ( ( ( 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 )
1154
1155 /*** GENERATED CODE ***/
1156 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
1157 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1158 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1159 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1160 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1161 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1162 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1163 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1164 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1165 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
1166 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1167 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1168 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1169
1170 /*
1171         PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1172
1173         \p{_Perl_Problematic_Locale_Foldeds_Start}
1174 */
1175 /*** GENERATED CODE ***/
1176 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
1177 ( ( ( ( ((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\
1178 : ( 0x80 == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0x8A ) ?   \
1179     ( ( ( 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 )\
1180 : ( 0x8D == ((const U8*)s)[0] || 0x9C == ((const U8*)s)[0] ) ?              \
1181     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1182 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1183     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1184 : ( 0x8F == ((const U8*)s)[0] ) ?                                           \
1185     ( ( 0x67 == ((const U8*)s)[1] || 0x73 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1186 : ( 0xAB == ((const U8*)s)[0] || ( 0xB3 == ((const U8*)s)[0] || 0xB4 == ((const U8*)s)[0] ) ) ?\
1187     ( ( 0x70 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1188 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1189     ( ( ( 0x63 == ((const U8*)s)[1] ) && ( ( 0x65 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x69 ) || 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1190 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1191     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1192 : ( ( ( ( 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 )
1193
1194 /*** GENERATED CODE ***/
1195 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
1196 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1197 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1198 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1199 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1200 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1201 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1202 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
1203 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1204 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1205 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
1206 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1207 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1208 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1209
1210 /*
1211         PATWS: pattern white space
1212
1213         \p{_Perl_PatWS}
1214 */
1215 /*** GENERATED CODE ***/
1216 #define is_PATWS_safe(s,e,is_utf8)                                          \
1217 ( ( LIKELY((e) > (s)) ) ?                                                   \
1218     ( ( ( ( ((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\
1219     : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
1220                     ( ( 0x55 == ((const U8*)s)[2] || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1221                 : ( ( 0x42 == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
1222 : 0 )
1223
1224 /*** GENERATED CODE ***/
1225 #define is_PATWS_cp(cp)                                                     \
1226 ( 0x05 == cp || ( 0x05 < cp &&                                              \
1227 ( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
1228 ( 0x15 == cp || ( 0x15 < cp &&                                              \
1229 ( 0x25 == cp || ( 0x25 < cp &&                                              \
1230 ( 0x40 == cp || ( 0x40 < cp &&                                              \
1231 ( 0x200E == cp || ( 0x200E < cp &&                                          \
1232 ( 0x200F == cp || ( 0x200F < cp &&                                          \
1233 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1234
1235 #endif  /* EBCDIC 1047 */
1236
1237 #if 'A' == 193 /* EBCDIC 037 */ \
1238      && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
1239      && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
1240      && '$' == 91 && '@' == 124 && '`' == 121
1241 /*
1242         LNBREAK: Line Break: \R
1243
1244         "\x0D\x0A"      # CRLF - Network (Windows) line ending
1245         \p{VertSpace}
1246 */
1247 /*** GENERATED CODE ***/
1248 #define is_LNBREAK_safe(s,e,is_utf8)                                        \
1249 ( ((e)-(s) > 2) ?                                                           \
1250     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1251     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1252         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1253     : ( ( ( ( is_utf8 ) && ( 0xCA == ((const U8*)s)[0] ) ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1254 : ((e)-(s) > 1) ?                                                           \
1255     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1256     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1257         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1258     : 0 )                                                                   \
1259 : ((e)-(s) > 0) ?                                                           \
1260     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1261 : 0 )
1262
1263 /*** GENERATED CODE ***/
1264 #define is_LNBREAK_utf8_safe(s,e)                                           \
1265 ( ((e)-(s) > 2) ?                                                           \
1266     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1267     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1268         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1269     : ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1270 : ((e)-(s) > 1) ?                                                           \
1271     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1272     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1273         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1274     : 0 )                                                                   \
1275 : ((e)-(s) > 0) ?                                                           \
1276     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1277 : 0 )
1278
1279 /*** GENERATED CODE ***/
1280 #define is_LNBREAK_latin1_safe(s,e)                                         \
1281 ( ((e)-(s) > 1) ?                                                           \
1282     ( ( ( 0x0B == ((const U8*)s)[0] || 0x0C == ((const U8*)s)[0] ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] ) ? 1\
1283     : ( 0x0D == ((const U8*)s)[0] ) ?                                       \
1284         ( ( 0x25 == ((const U8*)s)[1] ) ? 2 : 1 )                           \
1285     : 0 )                                                                   \
1286 : ((e)-(s) > 0) ?                                                           \
1287     ( ( 0x0B <= ((const U8*)s)[0] && ((const U8*)s)[0] <= 0x0D ) || 0x15 == ((const U8*)s)[0] || 0x25 == ((const U8*)s)[0] )\
1288 : 0 )
1289
1290 /*
1291         HORIZWS: Horizontal Whitespace: \h \H
1292
1293         \p{HorizSpace}
1294 */
1295 /*** GENERATED CODE ***/
1296 #define is_HORIZWS_high(s)                                                  \
1297 ( ( 0xBD == ((const U8*)s)[0] ) ?                                           \
1298     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1299 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1300     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
1301         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
1302     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1303         ( ( 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
1304     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1305 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1306
1307 /*** GENERATED CODE ***/
1308 #define is_HORIZWS_cp_high(cp)                                              \
1309 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
1310 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
1311 ( 0x202F == cp || ( 0x202F < cp &&                                          \
1312 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) )
1313
1314 /*
1315         VERTWS: Vertical Whitespace: \v \V
1316
1317         \p{VertSpace}
1318 */
1319 /*** GENERATED CODE ***/
1320 #define is_VERTWS_high(s)                                                   \
1321 ( ( ( ( 0xCA == ((const U8*)s)[0] ) && ( 0x42 == ((const U8*)s)[1] ) ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 )
1322
1323 /*** GENERATED CODE ***/
1324 #define is_VERTWS_cp_high(cp)                                               \
1325 ( 0x2028 == cp || 0x2029 == cp )
1326
1327 /*
1328         XDIGIT: Hexadecimal digits
1329
1330         \p{XDigit}
1331 */
1332 /*** GENERATED CODE ***/
1333 #define is_XDIGIT_high(s)                                                   \
1334 ( ( ( 0xDD == ((const U8*)s)[0] ) && ( 0x72 == ((const U8*)s)[1] ) ) ? ( ( 0x66 == ((const U8*)s)[2] ) ?\
1335             ( ( ( ( ((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 )\
1336         : ( ( 0x67 == ((const U8*)s)[2] || 0x68 == ((const U8*)s)[2] ) && ( 0x42 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x47 ) ) ? 4 : 0 ) : 0 )
1337
1338 /*** GENERATED CODE ***/
1339 #define is_XDIGIT_cp_high(cp)                                               \
1340 ( ( 0xFF10 <= cp && cp <= 0xFF19 ) || ( 0xFF19 < cp &&                      \
1341 ( ( 0xFF21 <= cp && cp <= 0xFF26 ) || ( 0xFF41 <= cp && cp <= 0xFF46 ) ) ) )
1342
1343 /*
1344         XPERLSPACE: \p{XPerlSpace}
1345
1346         \p{XPerlSpace}
1347 */
1348 /*** GENERATED CODE ***/
1349 #define is_XPERLSPACE_high(s)                                               \
1350 ( ( 0xBD == ((const U8*)s)[0] ) ?                                           \
1351     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1352 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1353     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
1354         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || 0x51 == ((const U8*)s)[2] ) ? 3 : 0 )\
1355     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1356         ( ( ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1357     : ( ( 0x43 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1358 : ( ( ( 0xCE == ((const U8*)s)[0] ) && ( 0x41 == ((const U8*)s)[1] ) ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )
1359
1360 /*** GENERATED CODE ***/
1361 #define is_XPERLSPACE_cp_high(cp)                                           \
1362 ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
1363 ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
1364 ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
1365 ( 0x2029 == cp || ( 0x2029 < cp &&                                          \
1366 ( 0x202F == cp || ( 0x202F < cp &&                                          \
1367 ( 0x205F == cp || 0x3000 == cp ) ) ) ) ) ) ) ) ) ) )
1368
1369 /*
1370         REPLACEMENT: Unicode REPLACEMENT CHARACTER
1371
1372         0xFFFD
1373 */
1374 /*** GENERATED CODE ***/
1375 #define is_REPLACEMENT_utf8_safe(s,e)                                       \
1376 ( ( ( ( ( ( ((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 )
1377
1378 /*
1379         NONCHAR: Non character code points
1380
1381         \p{_Perl_Nchar}
1382 */
1383 /*** GENERATED CODE ***/
1384 #define is_NONCHAR_utf8_safe(s,e)                                           \
1385 ( ( ( LIKELY((e) > (s)) ) && ( LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) ) ? ( ( 0xDD == ((const U8*)s)[0] ) ?\
1386             ( ( 0x72 == ((const U8*)s)[1] ) ?                               \
1387                 ( ( 0x55 == ((const U8*)s)[2] ) ?                           \
1388                     ( ( ( 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 )\
1389                 : ( 0x56 == ((const U8*)s)[2] ) ?                           \
1390                     ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
1391                 : ( ( 0x72 == ((const U8*)s)[2] ) && ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1392             : 0 )                                                           \
1393         : ( 0xDF == ((const U8*)s)[0] || 0xEA == ((const U8*)s)[0] || 0xEC == ((const U8*)s)[0] ) ?\
1394             ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x72 == ((const U8*)s)[2] ) ) && ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1395         : ( 0xED == ((const U8*)s)[0] ) ?                                   \
1396             ( ( ( ( ( ((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 )\
1397         : ( ( ( ( ( 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 )
1398
1399 /*
1400         SURROGATE: Surrogate code points
1401
1402         \p{_Perl_Surrogate}
1403 */
1404 /*** GENERATED CODE ***/
1405 #define is_SURROGATE_utf8_safe(s,e)                                         \
1406 ( ( ( ( ( ( ((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 )
1407
1408 /*
1409         QUOTEMETA: Meta-characters that \Q should quote
1410
1411         \p{_Perl_Quotemeta}
1412 */
1413 /*** GENERATED CODE ***/
1414 #define is_QUOTEMETA_high_part0(s)                                          \
1415 ( ( 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 ) ) ?\
1416         ( ( ( 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 )\
1417     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1418         ( ( ( 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 )\
1419     : ( 0x43 == ((const U8*)s)[1] ) ?                                       \
1420         ( ( ( 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 )\
1421     : ( 0x44 == ((const U8*)s)[1] ) ?                                       \
1422         ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x56 ) ) ? 3 : 0 )\
1423     : ( ( 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 )
1424
1425
1426 /*** GENERATED CODE ***/
1427 #define is_QUOTEMETA_high_part1(s)                                          \
1428 ( ( 0xCB == ((const U8*)s)[0] ) ?                                           \
1429     ( ( ( 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 ) ) ?\
1430         ( ( ( 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 )\
1431     : ( 0x69 == ((const U8*)s)[1] ) ?                                       \
1432         ( ( ( 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 )\
1433     : ( ( 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 )\
1434 : ( 0xCC == ((const U8*)s)[0] ) ?                                           \
1435     ( ( ( ( 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 )\
1436 : ( 0xCD == ((const U8*)s)[0] ) ?                                           \
1437     ( ( ( ( ( ((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 )\
1438 : ( 0xCE == ((const U8*)s)[0] ) ?                                           \
1439     ( ( 0x41 == ((const U8*)s)[1] ) ?                                       \
1440         ( ( ( 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 )\
1441     : ( 0x42 == ((const U8*)s)[1] ) ?                                       \
1442         ( ( 0x41 == ((const U8*)s)[2] || 0x57 == ((const U8*)s)[2] ) ? 3 : 0 )\
1443     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x45 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1444 : ( 0xDD == ((const U8*)s)[0] ) ?                                           \
1445     ( ( 0x72 == ((const U8*)s)[1] ) ?                                       \
1446         ( ( 0x4A == ((const U8*)s)[2] ) ?                                   \
1447             ( ( 0x71 == ((const U8*)s)[3] || 0x72 == ((const U8*)s)[3] ) ? 4 : 0 )\
1448         : ( 0x57 == ((const U8*)s)[2] ) ?                                   \
1449             ( ( ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x4A ) || ( 0x51 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x56 ) ) ? 4 : 0 )\
1450         : ( 0x59 == ((const U8*)s)[2] ) ?                                   \
1451             ( ( ( ((const U8*)s)[3] & 0xFE ) == 0x46 ) ? 4 : 0 )            \
1452         : ( 0x65 == ((const U8*)s)[2] ) ?                                   \
1453             ( ( 0x72 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
1454         : ( 0x70 == ((const U8*)s)[2] ) ?                                   \
1455             ( ( 0x41 == ((const U8*)s)[3] ) ? 4 : 0 )                       \
1456         : ( ( 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 )\
1457     : 0 )                                                                   \
1458 : ( 0xDF == ((const U8*)s)[0] ) ?                                           \
1459     ( ( 0x56 == ((const U8*)s)[1] ) ?                                       \
1460         ( ( ( 0x46 == ((const U8*)s)[2] ) && ( 0x41 <= ((const U8*)s)[3] && ((const U8*)s)[3] <= 0x44 ) ) ? 4 : 0 )\
1461     : ( ( ( 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 )\
1462 : ( ( ( ( ( 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 )
1463
1464
1465 /*** GENERATED CODE ***/
1466 #define is_QUOTEMETA_high(s)                                                \
1467 ( ( 0xAF == ((const U8*)s)[0] ) ?                                           \
1468     ( ( 0x56 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1469 : ( 0xB7 == ((const U8*)s)[0] ) ?                                           \
1470     ( ( ( 0x57 == ((const U8*)s)[1] ) && ( 0x6A == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1471 : ( 0xBC == ((const U8*)s)[0] ) ?                                           \
1472     ( ( 0x51 == ((const U8*)s)[1] ) ?                                       \
1473         ( ( 0x72 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
1474     : ( ( 0x52 == ((const U8*)s)[1] ) && ( 0x41 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1475 : ( 0xBD == ((const U8*)s)[0] ) ?                                           \
1476     ( ( 0x62 == ((const U8*)s)[1] ) ?                                       \
1477         ( ( 0x41 == ((const U8*)s)[2] ) ? 3 : 0 )                           \
1478     : ( ( 0x70 == ((const U8*)s)[1] ) && ( ( ((const U8*)s)[2] & 0xFE ) == 0x62 ) ) ? 3 : 0 )\
1479 : ( 0xBE == ((const U8*)s)[0] ) ?                                           \
1480     ( ( ( 0x41 == ((const U8*)s)[1] ) && ( 0x52 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x55 ) ) ? 3 : 0 )\
1481 : ( 0xCA == ((const U8*)s)[0] ) ? is_QUOTEMETA_high_part0(s) : is_QUOTEMETA_high_part1(s) )
1482
1483 /*
1484         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1485
1486         &regcharclass_multi_char_folds::multi_char_folds(1)
1487 */
1488 /*** GENERATED CODE ***/
1489 #define is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e)                             \
1490 ( ( 0x86 == ((const U8*)s)[1] ) ?                                           \
1491             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1492         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )
1493
1494
1495 /*** GENERATED CODE ***/
1496 #define is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e)                             \
1497 ( ( 0x88 == ((const U8*)s)[0] ) ?                                           \
1498         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1499     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1500         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1501     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
1502         ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1503     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1504         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1505     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1506         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1507     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1508         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1509     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1510         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1511     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
1512         ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1513     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
1514         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1515             ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1516         : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
1517             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1518                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
1519                     ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1520                 : 0 )                                                       \
1521             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1522         : ( 0x67 == ((const U8*)s)[1] ) ?                                   \
1523             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1524                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
1525                     ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
1526                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
1527                     : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1528                 : 0 )                                                       \
1529             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1530         : 0 )                                                               \
1531     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1532         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1533             ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1534         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1535             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1536                 ( ( 0x49 == ((const U8*)s)[3] ) ?                           \
1537                     ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
1538                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 0 )\
1539                     : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1540                 : ( 0x5F == ((const U8*)s)[3] ) ?                           \
1541                     ( ( 0xAD == ((const U8*)s)[4] ) ?                       \
1542                         ( ( 0x41 == ((const U8*)s)[5] || 0x42 == ((const U8*)s)[5] ) ? 6 : 4 )\
1543                     : ( ( 0xAF == ((const U8*)s)[4] ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1544                 : 0 )                                                       \
1545             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1546         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1547             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1548                 ( ( 0x43 == ((const U8*)s)[3] ) ?                           \
1549                     ( ( ( 0xB3 == ((const U8*)s)[4] ) && ( 0x67 == ((const U8*)s)[5] ) ) ? 6 : 4 )\
1550                 : 0 )                                                       \
1551             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1552         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1553     : ( 0xB7 == ((const U8*)s)[0] ) ?                                       \
1554         ( ( 0x52 == ((const U8*)s)[1] ) ?                                   \
1555             ( ( 0x46 == ((const U8*)s)[2] ) ?                               \
1556                 ( ( ( ( 0xB7 == ((const U8*)s)[3] ) && ( 0x53 == ((const U8*)s)[4] ) ) && ( 0x43 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1557             : ( 0x62 == ((const U8*)s)[2] ) ?                               \
1558                 ( ( ( ( 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 )\
1559             : ( ( ( ( 0x71 == ((const U8*)s)[2] ) && ( 0xB7 == ((const U8*)s)[3] ) ) && ( 0x52 == ((const U8*)s)[4] ) ) && ( 0x64 == ((const U8*)s)[5] ) ) ? 6 : 0 )\
1560         : 0 )                                                               \
1561     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
1562         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0x66 ) ?                        \
1563             ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1564         : ( ( ( ( 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 )\
1565     : 0 )
1566
1567
1568 /*** GENERATED CODE ***/
1569 #define is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e)                             \
1570 ( ( 0x81 == ((const U8*)s)[0] ) ?                                           \
1571         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1572     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1573         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1574             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1575         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1576     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1577         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1578     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1579         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1580     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
1581         ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1582     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1583         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1584     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1585         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1586     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1587         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1588     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1589         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1590     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
1591         ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1592     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
1593         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1594             ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1595         : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
1596             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1597                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1598             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1599         : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1600     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1601         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1602             ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1603         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1604             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1605                 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1606             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1607         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1608             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1609                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1610             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1611         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1612     : ( 0xBF == ((const U8*)s)[0] ) ?                                       \
1613         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0x66 ) ?                        \
1614             ( ( ( ( 0x41 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x48 ) && ( 0xB3 == ((const U8*)s)[3] ) ) && ( 0x67 == ((const U8*)s)[4] ) ) ? 5 : 0 )\
1615         : ( ( ( ( 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 )\
1616     : 0 )
1617
1618
1619 /*** GENERATED CODE ***/
1620 #define is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e)                             \
1621 ( ((e)-(s) > 3) ?                                                           \
1622     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1623         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1624     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1625         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1626             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1627         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1628     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1629         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1630     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1631         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1632     : ( 0x8E == ((const U8*)s)[0] ) ?                                       \
1633         ( ( ( ( 0x72 == ((const U8*)s)[1] ) && ( 0x8E == ((const U8*)s)[2] ) ) && ( 0x72 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1634     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1635         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1636     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1637         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1638     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1639         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1640     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1641         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1642     : ( 0xAA == ((const U8*)s)[0] ) ?                                       \
1643         ( ( ( 0x6A == ((const U8*)s)[1] ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1644     : ( 0xB3 == ((const U8*)s)[0] ) ?                                       \
1645         ( ( 0x53 == ((const U8*)s)[1] || 0x55 == ((const U8*)s)[1] ) ?      \
1646             ( ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1647         : ( 0x58 == ((const U8*)s)[1] || 0x65 == ((const U8*)s)[1] ) ?      \
1648             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1649                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1650             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1651         : ( ( ( 0x67 == ((const U8*)s)[1] ) && ( 0xAF == ((const U8*)s)[2] ) ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1652     : ( 0xB4 == ((const U8*)s)[0] ) ?                                       \
1653         ( ( 0x42 == ((const U8*)s)[1] ) ?                                   \
1654             ( ( ( 0xAD == ((const U8*)s)[2] ) && ( 0x5F == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1655         : ( 0x46 == ((const U8*)s)[1] ) ?                                   \
1656             ( ( 0xAD == ((const U8*)s)[2] ) ?                               \
1657                 ( ( 0x5F == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1658             : ( ( 0xAF == ((const U8*)s)[2] ) && ( 0x43 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1659         : ( 0x4A == ((const U8*)s)[1] ) ?                                   \
1660             ( ( 0xAF == ((const U8*)s)[2] ) ?                               \
1661                 ( ( 0x43 == ((const U8*)s)[3] ) ? 4 : 0 )                   \
1662             : ( ( 0xB3 == ((const U8*)s)[2] ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1663         : ( ( ( 0x55 == ((const U8*)s)[1] ) && ( 0xB3 == ((const U8*)s)[2] ) ) && ( 0x67 == ((const U8*)s)[3] ) ) ? 4 : 0 )\
1664     : 0 )                                                                   \
1665 : ((e)-(s) > 2) ?                                                           \
1666     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1667         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1668     : ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1669         ( ( 0x86 == ((const U8*)s)[1] ) ?                                   \
1670             ( ( 0x89 == ((const U8*)s)[2] || 0x93 == ((const U8*)s)[2] ) ? 3 : 2 )\
1671         : ( 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1672     : ( 0x88 == ((const U8*)s)[0] ) ?                                       \
1673         ( ( ( 0xAE == ((const U8*)s)[1] ) && ( 0x58 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1674     : ( 0x89 == ((const U8*)s)[0] ) ?                                       \
1675         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1676     : ( 0x91 == ((const U8*)s)[0] ) ?                                       \
1677         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x53 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1678     : ( 0xA2 == ((const U8*)s)[0] ) ?                                       \
1679         ( ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ? 2 : 0 )                \
1680     : ( 0xA3 == ((const U8*)s)[0] ) ?                                       \
1681         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1682     : ( 0xA6 == ((const U8*)s)[0] || 0xA8 == ((const U8*)s)[0] ) ?          \
1683         ( ( ( 0xAD == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1684     : ( ( ( 0xAA == ((const U8*)s)[0] ) && ( 0x6A == ((const U8*)s)[1] ) ) && ( 0x95 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1685 : ((e)-(s) > 1) ?                                                           \
1686     ( ( 0x86 == ((const U8*)s)[0] ) ?                                       \
1687         ( ( 0x86 == ((const U8*)s)[1] || 0x89 == ((const U8*)s)[1] || 0x93 == ((const U8*)s)[1] ) ? 2 : 0 )\
1688     : ( ( 0xA2 == ((const U8*)s)[0] ) && ( ( ((const U8*)s)[1] & 0xFE ) == 0xA2 ) ) ? 2 : 0 )\
1689 : 0 )
1690
1691
1692 /*** GENERATED CODE ***/
1693 #define is_MULTI_CHAR_FOLD_utf8_safe(s,e)                                   \
1694 ( ((e)-(s) > 5) ?                                                           \
1695     ( ( 0x81 == ((const U8*)s)[0] ) ?                                       \
1696         ( ( ( 0xAA == ((const U8*)s)[1] ) && ( 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1697     : ( 0x86 == ((const U8*)s)[0] ) ? is_MULTI_CHAR_FOLD_utf8_safe_part0(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part1(s,e) )\
1698 : ((e)-(s) > 4) ? is_MULTI_CHAR_FOLD_utf8_safe_part2(s,e) : is_MULTI_CHAR_FOLD_utf8_safe_part3(s,e) )
1699
1700 /*
1701         MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
1702
1703         &regcharclass_multi_char_folds::multi_char_folds(0)
1704 */
1705 /*** GENERATED CODE ***/
1706 #define is_MULTI_CHAR_FOLD_latin1_safe(s,e)                                 \
1707 ( ((e)-(s) > 2) ?                                                           \
1708     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1709         ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) ?                        \
1710             ( ( ( ( ((const U8*)s)[2] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[2] & 0xBF ) == 0x93 ) ) ? 3 : 2 )\
1711         : ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1712     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1713 : ((e)-(s) > 1) ?                                                           \
1714     ( ( ( ((const U8*)s)[0] & 0xBF ) == 0x86 ) ?                            \
1715         ( ( ( ( ((const U8*)s)[1] & 0xBF ) == 0x86 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x89 ) || ( ( ((const U8*)s)[1] & 0xBF ) == 0x93 ) ) ? 2 : 0 )\
1716     : ( ( ( ((const U8*)s)[0] & 0xBF ) == 0xA2 ) && ( ( ((const U8*)s)[1] & 0xBE ) == 0xA2 ) ) ? 2 : 0 )\
1717 : 0 )
1718
1719 /*
1720         FOLDS_TO_MULTI: characters that fold to multi-char strings
1721
1722         \p{_Perl_Folds_To_Multi_Char}
1723 */
1724 /*** GENERATED CODE ***/
1725 #define is_FOLDS_TO_MULTI_utf8(s)                                           \
1726 ( ( 0x80 == ((const U8*)s)[0] ) ?                                           \
1727     ( ( 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1728 : ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ?\
1729     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1730 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1731     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1732 : ( 0xB7 == ((const U8*)s)[0] ) ?                                           \
1733     ( ( ( 0x53 == ((const U8*)s)[1] ) && ( 0x48 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1734 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1735     ( ( 0x62 == ((const U8*)s)[1] ) ?                                       \
1736         ( ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ? 3 : 0 )\
1737     : ( 0x68 == ((const U8*)s)[1] ) ?                                       \
1738         ( ( 0x57 == ((const U8*)s)[2] || 0x59 == ((const U8*)s)[2] || 0x62 == ((const U8*)s)[2] || 0x64 == ((const U8*)s)[2] ) ? 3 : 0 )\
1739     : ( 0x6A == ((const U8*)s)[1] ) ?                                       \
1740         ( ( ( 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 )\
1741     : ( 0x70 == ((const U8*)s)[1] ) ?                                       \
1742         ( ( ( 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 )\
1743     : ( 0x71 == ((const U8*)s)[1] ) ?                                       \
1744         ( ( ( ( ((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 )\
1745     : ( ( 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 )\
1746 : ( ( ( ( 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 )
1747
1748 /*
1749         PROBLEMATIC_LOCALE_FOLD: characters whose fold is problematic under locale
1750
1751         \p{_Perl_Problematic_Locale_Folds}
1752 */
1753 /*** GENERATED CODE ***/
1754 #define is_PROBLEMATIC_LOCALE_FOLD_utf8(s)                                  \
1755 ( ( ( ( ((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\
1756 : ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
1757     ( ( ( 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 )\
1758 : ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] ) ?              \
1759     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1760 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1761     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1762 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1763     ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1764 : ( ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ?                                \
1765     ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1766 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1767     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1768 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1769     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1770 : ( ( ( ( 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 )
1771
1772 /*** GENERATED CODE ***/
1773 #define is_PROBLEMATIC_LOCALE_FOLD_cp(cp)                                   \
1774 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1775 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1776 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1777 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1778 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1779 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1780 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1781 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1782 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
1783 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1784 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1785 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1786
1787 /*
1788         PROBLEMATIC_LOCALE_FOLDEDS_START: The first folded character of folds which are problematic under locale
1789
1790         \p{_Perl_Problematic_Locale_Foldeds_Start}
1791 */
1792 /*** GENERATED CODE ***/
1793 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_utf8(s)                         \
1794 ( ( ( ( ((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\
1795 : ( 0x78 == ((const U8*)s)[0] || 0x80 == ((const U8*)s)[0] || 0x8A == ((const U8*)s)[0] ) ?\
1796     ( ( ( 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 )\
1797 : ( 0x8C == ((const U8*)s)[0] || 0x9B == ((const U8*)s)[0] ) ?              \
1798     ( ( 0x57 == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1799 : ( 0x8D == ((const U8*)s)[0] ) ?                                           \
1800     ( ( 0x4A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1801 : ( 0x8E == ((const U8*)s)[0] ) ?                                           \
1802     ( ( 0x66 == ((const U8*)s)[1] || 0x72 == ((const U8*)s)[1] ) ? 2 : 0 )  \
1803 : ( 0xAA == ((const U8*)s)[0] || ( ((const U8*)s)[0] & 0xFE ) == 0xB2 ) ?   \
1804     ( ( 0x6A == ((const U8*)s)[1] ) ? 2 : 0 )                               \
1805 : ( 0xBF == ((const U8*)s)[0] ) ?                                           \
1806     ( ( ( 0x62 == ((const U8*)s)[1] ) && ( ( 0x64 <= ((const U8*)s)[2] && ((const U8*)s)[2] <= 0x68 ) || 0x71 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1807 : ( 0xCA == ((const U8*)s)[0] ) ?                                           \
1808     ( ( ( 0x4A == ((const U8*)s)[1] ) && ( 0x51 == ((const U8*)s)[2] || 0x52 == ((const U8*)s)[2] ) ) ? 3 : 0 )\
1809 : ( ( ( ( 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 )
1810
1811 /*** GENERATED CODE ***/
1812 #define is_PROBLEMATIC_LOCALE_FOLDEDS_START_cp(cp)                          \
1813 ( cp <= 0xFF || ( 0xFF < cp &&                                              \
1814 ( 0x130 == cp || ( 0x130 < cp &&                                            \
1815 ( 0x149 == cp || ( 0x149 < cp &&                                            \
1816 ( 0x178 == cp || ( 0x178 < cp &&                                            \
1817 ( 0x17F == cp || ( 0x17F < cp &&                                            \
1818 ( 0x1F0 == cp || ( 0x1F0 < cp &&                                            \
1819 ( 0x2BC == cp || ( 0x2BC < cp &&                                            \
1820 ( 0x39C == cp || ( 0x39C < cp &&                                            \
1821 ( 0x3BC == cp || ( 0x3BC < cp &&                                            \
1822 ( ( 0x1E96 <= cp && cp <= 0x1E9A ) || ( 0x1E9A < cp &&                      \
1823 ( 0x1E9E == cp || ( 0x1E9E < cp &&                                          \
1824 ( 0x212A == cp || ( 0x212A < cp &&                                          \
1825 ( 0x212B == cp || ( 0xFB00 <= cp && cp <= 0xFB06 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1826
1827 /*
1828         PATWS: pattern white space
1829
1830         \p{_Perl_PatWS}
1831 */
1832 /*** GENERATED CODE ***/
1833 #define is_PATWS_safe(s,e,is_utf8)                                          \
1834 ( ( LIKELY((e) > (s)) ) ?                                                   \
1835     ( ( ( ( ((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\
1836     : ( ( is_utf8 && LIKELY(((e) - (s)) >= UTF8SKIP(s)) ) && ( 0xCA == ((const U8*)s)[0] ) ) ? ( ( 0x41 == ((const U8*)s)[1] ) ?\
1837                     ( ( 0x55 == ((const U8*)s)[2] || 0x56 == ((const U8*)s)[2] ) ? 3 : 0 )\
1838                 : ( ( 0x42 == ((const U8*)s)[1] ) && ( 0x49 == ((const U8*)s)[2] || 0x4A == ((const U8*)s)[2] ) ) ? 3 : 0 ) : 0 )\
1839 : 0 )
1840
1841 /*** GENERATED CODE ***/
1842 #define is_PATWS_cp(cp)                                                     \
1843 ( 0x05 == cp || ( 0x05 < cp &&                                              \
1844 ( ( 0x0B <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
1845 ( 0x15 == cp || ( 0x15 < cp &&                                              \
1846 ( 0x25 == cp || ( 0x25 < cp &&                                              \
1847 ( 0x40 == cp || ( 0x40 < cp &&                                              \
1848 ( 0x200E == cp || ( 0x200E < cp &&                                          \
1849 ( 0x200F == cp || ( 0x200F < cp &&                                          \
1850 ( 0x2028 == cp || 0x2029 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
1851
1852 #endif  /* EBCDIC 037 */
1853
1854 #endif /* PERL_REGCHARCLASS_H_ */
1855
1856 /* Generated from:
1857  * 59e717586b720a821ee0d7397679d5322e38b49f6fb7840545aedf669c733b70 lib/Unicode/UCD.pm
1858  * ff4404ec64f308bdf7714c50f9fdf0d1d0bf3c34db4d0a67e58ef0c6f88e818f lib/unicore/ArabicShaping.txt
1859  * 292171a0a1c13d7e581e8781eb4cdf248243b1ab267354a63c7a14429dea2740 lib/unicore/BidiBrackets.txt
1860  * 8f2695cc42989a79a715ab0d2892bd0c998759180cfdfb998674447f48231940 lib/unicore/BidiMirroring.txt
1861  * 5ae1649a42ed8ae8cb885af79563f00a9ae17e602405a56ed8aca214da14eea7 lib/unicore/Blocks.txt
1862  * 97b43ed3f4b80572c2114200e5e43a6b923d984c74a6caaf27de5b8462c04cb0 lib/unicore/CaseFolding.txt
1863  * eedcf6932b4081ee65878454588c803af910a5aed7c8c67e3c38701cbee9b9e4 lib/unicore/CompositionExclusions.txt
1864  * 90e48995643f45b08f0ef67fb90de3bb18e26765272bcc0c35c840cbc10b37c1 lib/unicore/DAge.txt
1865  * e6ca152259189ec4bc2297e93c6c88f86e162cc52814198263497f3c9b46cbe9 lib/unicore/DCoreProperties.txt
1866  * 3e255ccdff4b00cfe0be53bbd583e4fe2e7d4039138579543548a5ecfce45242 lib/unicore/DNormalizationProps.txt
1867  * 9f34e2d3ea27ca82f4f14b62411861d1f07c4b9e296d54da112a09cad5b9a48d lib/unicore/EastAsianWidth.txt
1868  * 983810c739b56b9ff0fcb5db018c67d584ee515e8a5f4d9348c79ee85167ec37 lib/unicore/HangulSyllableType.txt
1869  * 7d514a779ee4baf91262bd83c400cb502c3e435dba4b880c876506be32b8e1d0 lib/unicore/IndicPositionalCategory.txt
1870  * f6acead8f84df5c72f3fb70dfc9375279926e4d8ef3480ffff3723095e9804aa lib/unicore/IndicSyllabicCategory.txt
1871  * c8ed526f70443535ca6b705980a08c774017ff17e921202dcb7b71ae554047b6 lib/unicore/Jamo.txt
1872  * 6b204c3727b77699d04a574b22b1e44facab038642095b8565b49762970d9bf8 lib/unicore/LineBreak.txt
1873  * f2357d2bd3526b9e830de72ab038dcfc65a2dff24bcb4c6325c92071eb341f88 lib/unicore/NameAliases.txt
1874  * 6c3e6bd1e58b640076a23b83318a8bf6a691d7fc2b2106114d77c5c5a898bced lib/unicore/NamedSequences.txt
1875  * 58dbf8fedbd5bf67a3bd5c10eda2f2acf2eae59df5f77884a6f158e98f75cf8c lib/unicore/PropList.txt
1876  * a6b0467c3cc7aa4e57d4e5cc7f6e9562b79cf4426dfe438517c28b368ed3e673 lib/unicore/PropValueAliases.txt
1877  * 9ca521224e08d30696516ae6bc3d4434659c45df16047c0d31e440783c163a3b lib/unicore/PropertyAliases.txt
1878  * 3fd0d744a816ddfd06809f92151ae4a73ec970ac2006806c269732d8951f3911 lib/unicore/ScriptExtensions.txt
1879  * d02e24e4c516e9090b6bc9c2d2c8f4c89510b6ed8c5e859d0a861b0dc5cf372d lib/unicore/Scripts.txt
1880  * e9947a0e86f27353f0e776403c4826675001210bd39d7114118a8864a57f7472 lib/unicore/SpecialCasing.txt
1881  * 52423e4d7492167b62f518f68d54db88930abbbff7f11edfcaec8f726498cab1 lib/unicore/UnicodeData.txt
1882  * f28caf260635cebf25fd58124bdc9aa22af08ba4d039ffc584365fb41a31cda5 lib/unicore/VerticalOrientation.txt
1883  * 718d174957712410bfad782b10d557e1047574d7ef1642d6bb122f8ca5662c82 lib/unicore/auxiliary/GCBTest.txt
1884  * 3b66caefc4fa877d0e50dbbbfa39658c86e29b26c6f206f68d7aec192d4c59b6 lib/unicore/auxiliary/GraphemeBreakProperty.txt
1885  * 2aad3836c37fc4c2fa2a24f21586fb3a931dacaf0a1c845a6dc6395f30bd79a7 lib/unicore/auxiliary/LBTest.txt
1886  * eacc03e39dddc60cc59ec9bd274b8ac8dfa25d61745ef0d5c8aa1c151a5b68ba lib/unicore/auxiliary/SBTest.txt
1887  * e45fa8195bb413b901cc1e3772dfea2cead86805d46a51e3480a5a256e8c24d9 lib/unicore/auxiliary/SentenceBreakProperty.txt
1888  * 95789f62e3b1e781dc9ed78f3983d39ff1a5e36ff0b497d6e610446df902b0f6 lib/unicore/auxiliary/WBTest.txt
1889  * c207e8ebd06ee591a27b1087f2971f4cd93e960103c453d85d1d9ba26fb8b202 lib/unicore/auxiliary/WordBreakProperty.txt
1890  * a3c0839826a30166b2bb06ba58df403547b8c3d9eae995ef889d20d115f4b223 lib/unicore/extracted/DBidiClass.txt
1891  * 280afe22f6c4d56566d17d6d1400f33465a979c96f3d99ff3bff9bd14d17e734 lib/unicore/extracted/DBinaryProperties.txt
1892  * db7fd6a5e6f068c47dbc3b74fb633fb1d09d17073410fe435295d05ce925c5f6 lib/unicore/extracted/DCombiningClass.txt
1893  * 8204c07a7c217bdf22525030ad7b4fb991edf463bffcca7e6dba46b9992e0d99 lib/unicore/extracted/DDecompositionType.txt
1894  * e343113719b660bdd81217ec101ce751f844fca0e8d6f15fb21c8ee7dfe7c14c lib/unicore/extracted/DEastAsianWidth.txt
1895  * 07c55b0ed7271fe1a5f4d68059291288b1a8ad61940602d18956fd87390c2d9e lib/unicore/extracted/DGeneralCategory.txt
1896  * d788b9362ec7681e98f8b9d6ef276546e1a6207dda05317ede55bd686b0940a9 lib/unicore/extracted/DJoinGroup.txt
1897  * ebbea3c93eeb7431378885aebac0490d77f6900239c9176f90b6fee030903d96 lib/unicore/extracted/DJoinType.txt
1898  * be0f129691d479aa38646e4ca0ec1ee576ae7f75b0300a5624a7fa862fa8abba lib/unicore/extracted/DLineBreak.txt
1899  * 92449d354d9f6b6f2f97a292ebb59f6344ffdeb83d120d7d23e569c43ba67cd5 lib/unicore/extracted/DNumType.txt
1900  * e3a319527153b0c6c0c549b40fc6f3a01a7a0dcd6620784391db25901df3b154 lib/unicore/extracted/DNumValues.txt
1901  * 409910af8e9ad2cba213c70f936a6c716494029a8346e8b55dd44275cc51d35d lib/unicore/mktables
1902  * 21653d2744fdd071f9ef138c805393901bb9547cf3e777ebf50215a191f986ea lib/unicore/version
1903  * 913d2f93f3cb6cdf1664db888bf840bc4eb074eef824e082fceda24a9445e60c regen/charset_translations.pl
1904  * 9ea6338945a7d70e5ea4b31ac7856c0b521df96be002e94b4b3b7d31debbf3ab regen/regcharclass.pl
1905  * 393f8d882713a3ba227351ad0f00ea4839fda74fcf77dcd1cdf31519925adba5 regen/regcharclass_multi_char_folds.pl
1906  * ex: set ro: */