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