1 |
# This set of tests is for UTF support, including Unicode properties. The
|
2 |
# Unicode tests are all compatible with all versions of Perl >= 5.10, but
|
3 |
# some of the property tests may differ because of different versions of
|
4 |
# Unicode in use by PCRE2 and Perl.
|
5 |
|
6 |
#newline_default lf anycrlf any
|
7 |
#perltest
|
8 |
|
9 |
/a.b/utf
|
10 |
acb
|
11 |
a\x7fb
|
12 |
a\x{100}b
|
13 |
\= Expect no match
|
14 |
a\nb
|
15 |
|
16 |
/a(.{3})b/utf
|
17 |
a\x{4000}xyb
|
18 |
a\x{4000}\x7fyb
|
19 |
a\x{4000}\x{100}yb
|
20 |
\= Expect no match
|
21 |
a\x{4000}b
|
22 |
ac\ncb
|
23 |
|
24 |
/a(.*?)(.)/
|
25 |
a\xc0\x88b
|
26 |
|
27 |
/a(.*?)(.)/utf
|
28 |
a\x{100}b
|
29 |
|
30 |
/a(.*)(.)/
|
31 |
a\xc0\x88b
|
32 |
|
33 |
/a(.*)(.)/utf
|
34 |
a\x{100}b
|
35 |
|
36 |
/a(.)(.)/
|
37 |
a\xc0\x92bcd
|
38 |
|
39 |
/a(.)(.)/utf
|
40 |
a\x{240}bcd
|
41 |
|
42 |
/a(.?)(.)/
|
43 |
a\xc0\x92bcd
|
44 |
|
45 |
/a(.?)(.)/utf
|
46 |
a\x{240}bcd
|
47 |
|
48 |
/a(.??)(.)/
|
49 |
a\xc0\x92bcd
|
50 |
|
51 |
/a(.??)(.)/utf
|
52 |
a\x{240}bcd
|
53 |
|
54 |
/a(.{3})b/utf
|
55 |
a\x{1234}xyb
|
56 |
a\x{1234}\x{4321}yb
|
57 |
a\x{1234}\x{4321}\x{3412}b
|
58 |
\= Expect no match
|
59 |
a\x{1234}b
|
60 |
ac\ncb
|
61 |
|
62 |
/a(.{3,})b/utf
|
63 |
a\x{1234}xyb
|
64 |
a\x{1234}\x{4321}yb
|
65 |
a\x{1234}\x{4321}\x{3412}b
|
66 |
axxxxbcdefghijb
|
67 |
a\x{1234}\x{4321}\x{3412}\x{3421}b
|
68 |
\= Expect no match
|
69 |
a\x{1234}b
|
70 |
|
71 |
/a(.{3,}?)b/utf
|
72 |
a\x{1234}xyb
|
73 |
a\x{1234}\x{4321}yb
|
74 |
a\x{1234}\x{4321}\x{3412}b
|
75 |
axxxxbcdefghijb
|
76 |
a\x{1234}\x{4321}\x{3412}\x{3421}b
|
77 |
\= Expect no match
|
78 |
a\x{1234}b
|
79 |
|
80 |
/a(.{3,5})b/utf
|
81 |
a\x{1234}xyb
|
82 |
a\x{1234}\x{4321}yb
|
83 |
a\x{1234}\x{4321}\x{3412}b
|
84 |
axxxxbcdefghijb
|
85 |
a\x{1234}\x{4321}\x{3412}\x{3421}b
|
86 |
axbxxbcdefghijb
|
87 |
axxxxxbcdefghijb
|
88 |
\= Expect no match
|
89 |
a\x{1234}b
|
90 |
axxxxxxbcdefghijb
|
91 |
|
92 |
/a(.{3,5}?)b/utf
|
93 |
a\x{1234}xyb
|
94 |
a\x{1234}\x{4321}yb
|
95 |
a\x{1234}\x{4321}\x{3412}b
|
96 |
axxxxbcdefghijb
|
97 |
a\x{1234}\x{4321}\x{3412}\x{3421}b
|
98 |
axbxxbcdefghijb
|
99 |
axxxxxbcdefghijb
|
100 |
\= Expect no match
|
101 |
a\x{1234}b
|
102 |
axxxxxxbcdefghijb
|
103 |
|
104 |
/^[a\x{c0}]/utf
|
105 |
\= Expect no match
|
106 |
\x{100}
|
107 |
|
108 |
/(?<=aXb)cd/utf
|
109 |
aXbcd
|
110 |
|
111 |
/(?<=a\x{100}b)cd/utf
|
112 |
a\x{100}bcd
|
113 |
|
114 |
/(?<=a\x{100000}b)cd/utf
|
115 |
a\x{100000}bcd
|
116 |
|
117 |
/(?:\x{100}){3}b/utf
|
118 |
\x{100}\x{100}\x{100}b
|
119 |
\= Expect no match
|
120 |
\x{100}\x{100}b
|
121 |
|
122 |
/\x{ab}/utf
|
123 |
\x{ab}
|
124 |
\xc2\xab
|
125 |
\= Expect no match
|
126 |
\x00{ab}
|
127 |
|
128 |
/(?<=(.))X/utf
|
129 |
WXYZ
|
130 |
\x{256}XYZ
|
131 |
\= Expect no match
|
132 |
XYZ
|
133 |
|
134 |
/[^a]+/g,utf
|
135 |
bcd
|
136 |
\x{100}aY\x{256}Z
|
137 |
|
138 |
/^[^a]{2}/utf
|
139 |
\x{100}bc
|
140 |
|
141 |
/^[^a]{2,}/utf
|
142 |
\x{100}bcAa
|
143 |
|
144 |
/^[^a]{2,}?/utf
|
145 |
\x{100}bca
|
146 |
|
147 |
/[^a]+/gi,utf
|
148 |
bcd
|
149 |
\x{100}aY\x{256}Z
|
150 |
|
151 |
/^[^a]{2}/i,utf
|
152 |
\x{100}bc
|
153 |
|
154 |
/^[^a]{2,}/i,utf
|
155 |
\x{100}bcAa
|
156 |
|
157 |
/^[^a]{2,}?/i,utf
|
158 |
\x{100}bca
|
159 |
|
160 |
/\x{100}{0,0}/utf
|
161 |
abcd
|
162 |
|
163 |
/\x{100}?/utf
|
164 |
abcd
|
165 |
\x{100}\x{100}
|
166 |
|
167 |
/\x{100}{0,3}/utf
|
168 |
\x{100}\x{100}
|
169 |
\x{100}\x{100}\x{100}\x{100}
|
170 |
|
171 |
/\x{100}*/utf
|
172 |
abce
|
173 |
\x{100}\x{100}\x{100}\x{100}
|
174 |
|
175 |
/\x{100}{1,1}/utf
|
176 |
abcd\x{100}\x{100}\x{100}\x{100}
|
177 |
|
178 |
/\x{100}{1,3}/utf
|
179 |
abcd\x{100}\x{100}\x{100}\x{100}
|
180 |
|
181 |
/\x{100}+/utf
|
182 |
abcd\x{100}\x{100}\x{100}\x{100}
|
183 |
|
184 |
/\x{100}{3}/utf
|
185 |
abcd\x{100}\x{100}\x{100}XX
|
186 |
|
187 |
/\x{100}{3,5}/utf
|
188 |
abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
|
189 |
|
190 |
/\x{100}{3,}/utf
|
191 |
abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
|
192 |
|
193 |
/(?<=a\x{100}{2}b)X/utf,aftertext
|
194 |
Xyyya\x{100}\x{100}bXzzz
|
195 |
|
196 |
/\D*/utf
|
197 |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
198 |
|
199 |
/\D*/utf
|
200 |
\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
|
201 |
|
202 |
/\D/utf
|
203 |
1X2
|
204 |
1\x{100}2
|
205 |
|
206 |
/>\S/utf
|
207 |
> >X Y
|
208 |
> >\x{100} Y
|
209 |
|
210 |
/\d/utf
|
211 |
\x{100}3
|
212 |
|
213 |
/\s/utf
|
214 |
\x{100} X
|
215 |
|
216 |
/\D+/utf
|
217 |
12abcd34
|
218 |
\= Expect no match
|
219 |
1234
|
220 |
|
221 |
/\D{2,3}/utf
|
222 |
12abcd34
|
223 |
12ab34
|
224 |
\= Expect no match
|
225 |
1234
|
226 |
12a34
|
227 |
|
228 |
/\D{2,3}?/utf
|
229 |
12abcd34
|
230 |
12ab34
|
231 |
\= Expect no match
|
232 |
1234
|
233 |
12a34
|
234 |
|
235 |
/\d+/utf
|
236 |
12abcd34
|
237 |
|
238 |
/\d{2,3}/utf
|
239 |
12abcd34
|
240 |
1234abcd
|
241 |
\= Expect no match
|
242 |
1.4
|
243 |
|
244 |
/\d{2,3}?/utf
|
245 |
12abcd34
|
246 |
1234abcd
|
247 |
\= Expect no match
|
248 |
1.4
|
249 |
|
250 |
/\S+/utf
|
251 |
12abcd34
|
252 |
\= Expect no match
|
253 |
\ \
|
254 |
|
255 |
/\S{2,3}/utf
|
256 |
12abcd34
|
257 |
1234abcd
|
258 |
\= Expect no match
|
259 |
\ \
|
260 |
|
261 |
/\S{2,3}?/utf
|
262 |
12abcd34
|
263 |
1234abcd
|
264 |
\= Expect no match
|
265 |
\ \
|
266 |
|
267 |
/>\s+</utf,aftertext
|
268 |
12> <34
|
269 |
|
270 |
/>\s{2,3}</utf,aftertext
|
271 |
ab> <cd
|
272 |
ab> <ce
|
273 |
\= Expect no match
|
274 |
ab> <cd
|
275 |
|
276 |
/>\s{2,3}?</utf,aftertext
|
277 |
ab> <cd
|
278 |
ab> <ce
|
279 |
\= Expect no match
|
280 |
ab> <cd
|
281 |
|
282 |
/\w+/utf
|
283 |
12 34
|
284 |
\= Expect no match
|
285 |
+++=*!
|
286 |
|
287 |
/\w{2,3}/utf
|
288 |
ab cd
|
289 |
abcd ce
|
290 |
\= Expect no match
|
291 |
a.b.c
|
292 |
|
293 |
/\w{2,3}?/utf
|
294 |
ab cd
|
295 |
abcd ce
|
296 |
\= Expect no match
|
297 |
a.b.c
|
298 |
|
299 |
/\W+/utf
|
300 |
12====34
|
301 |
\= Expect no match
|
302 |
abcd
|
303 |
|
304 |
/\W{2,3}/utf
|
305 |
ab====cd
|
306 |
ab==cd
|
307 |
\= Expect no match
|
308 |
a.b.c
|
309 |
|
310 |
/\W{2,3}?/utf
|
311 |
ab====cd
|
312 |
ab==cd
|
313 |
\= Expect no match
|
314 |
a.b.c
|
315 |
|
316 |
/[\x{100}]/utf
|
317 |
\x{100}
|
318 |
Z\x{100}
|
319 |
\x{100}Z
|
320 |
|
321 |
/[Z\x{100}]/utf
|
322 |
Z\x{100}
|
323 |
\x{100}
|
324 |
\x{100}Z
|
325 |
|
326 |
/[\x{100}\x{200}]/utf
|
327 |
ab\x{100}cd
|
328 |
ab\x{200}cd
|
329 |
|
330 |
/[\x{100}-\x{200}]/utf
|
331 |
ab\x{100}cd
|
332 |
ab\x{200}cd
|
333 |
ab\x{111}cd
|
334 |
|
335 |
/[z-\x{200}]/utf
|
336 |
ab\x{100}cd
|
337 |
ab\x{200}cd
|
338 |
ab\x{111}cd
|
339 |
abzcd
|
340 |
ab|cd
|
341 |
|
342 |
/[Q\x{100}\x{200}]/utf
|
343 |
ab\x{100}cd
|
344 |
ab\x{200}cd
|
345 |
Q?
|
346 |
|
347 |
/[Q\x{100}-\x{200}]/utf
|
348 |
ab\x{100}cd
|
349 |
ab\x{200}cd
|
350 |
ab\x{111}cd
|
351 |
Q?
|
352 |
|
353 |
/[Qz-\x{200}]/utf
|
354 |
ab\x{100}cd
|
355 |
ab\x{200}cd
|
356 |
ab\x{111}cd
|
357 |
abzcd
|
358 |
ab|cd
|
359 |
Q?
|
360 |
|
361 |
/[\x{100}\x{200}]{1,3}/utf
|
362 |
ab\x{100}cd
|
363 |
ab\x{200}cd
|
364 |
ab\x{200}\x{100}\x{200}\x{100}cd
|
365 |
|
366 |
/[\x{100}\x{200}]{1,3}?/utf
|
367 |
ab\x{100}cd
|
368 |
ab\x{200}cd
|
369 |
ab\x{200}\x{100}\x{200}\x{100}cd
|
370 |
|
371 |
/[Q\x{100}\x{200}]{1,3}/utf
|
372 |
ab\x{100}cd
|
373 |
ab\x{200}cd
|
374 |
ab\x{200}\x{100}\x{200}\x{100}cd
|
375 |
|
376 |
/[Q\x{100}\x{200}]{1,3}?/utf
|
377 |
ab\x{100}cd
|
378 |
ab\x{200}cd
|
379 |
ab\x{200}\x{100}\x{200}\x{100}cd
|
380 |
|
381 |
/(?<=[\x{100}\x{200}])X/utf
|
382 |
abc\x{200}X
|
383 |
abc\x{100}X
|
384 |
\= Expect no match
|
385 |
X
|
386 |
|
387 |
/(?<=[Q\x{100}\x{200}])X/utf
|
388 |
abc\x{200}X
|
389 |
abc\x{100}X
|
390 |
abQX
|
391 |
\= Expect no match
|
392 |
X
|
393 |
|
394 |
/(?<=[\x{100}\x{200}]{3})X/utf
|
395 |
abc\x{100}\x{200}\x{100}X
|
396 |
\= Expect no match
|
397 |
abc\x{200}X
|
398 |
X
|
399 |
|
400 |
/[^\x{100}\x{200}]X/utf
|
401 |
AX
|
402 |
\x{150}X
|
403 |
\x{500}X
|
404 |
\= Expect no match
|
405 |
\x{100}X
|
406 |
\x{200}X
|
407 |
|
408 |
/[^Q\x{100}\x{200}]X/utf
|
409 |
AX
|
410 |
\x{150}X
|
411 |
\x{500}X
|
412 |
\= Expect no match
|
413 |
\x{100}X
|
414 |
\x{200}X
|
415 |
QX
|
416 |
|
417 |
/[^\x{100}-\x{200}]X/utf
|
418 |
AX
|
419 |
\x{500}X
|
420 |
\= Expect no match
|
421 |
\x{100}X
|
422 |
\x{150}X
|
423 |
\x{200}X
|
424 |
|
425 |
/[z-\x{100}]/i,utf
|
426 |
z
|
427 |
Z
|
428 |
\x{100}
|
429 |
\= Expect no match
|
430 |
\x{102}
|
431 |
y
|
432 |
|
433 |
/[\xFF]/
|
434 |
>\xff<
|
435 |
|
436 |
/[\xff]/utf
|
437 |
>\x{ff}<
|
438 |
|
439 |
/[^\xFF]/
|
440 |
XYZ
|
441 |
|
442 |
/[^\xff]/utf
|
443 |
XYZ
|
444 |
\x{123}
|
445 |
|
446 |
/^[ac]*b/utf
|
447 |
\= Expect no match
|
448 |
xb
|
449 |
|
450 |
/^[ac\x{100}]*b/utf
|
451 |
\= Expect no match
|
452 |
xb
|
453 |
|
454 |
/^[^x]*b/i,utf
|
455 |
\= Expect no match
|
456 |
xb
|
457 |
|
458 |
/^[^x]*b/utf
|
459 |
\= Expect no match
|
460 |
xb
|
461 |
|
462 |
/^\d*b/utf
|
463 |
\= Expect no match
|
464 |
xb
|
465 |
|
466 |
/(|a)/g,utf
|
467 |
catac
|
468 |
a\x{256}a
|
469 |
|
470 |
/^\x{85}$/i,utf
|
471 |
\x{85}
|
472 |
|
473 |
/^ሴ/utf
|
474 |
ሴ
|
475 |
|
476 |
/^\ሴ/utf
|
477 |
ሴ
|
478 |
|
479 |
"(?s)(.{1,5})"utf
|
480 |
abcdefg
|
481 |
ab
|
482 |
|
483 |
/a*\x{100}*\w/utf
|
484 |
a
|
485 |
|
486 |
/\S\S/g,utf
|
487 |
A\x{a3}BC
|
488 |
|
489 |
/\S{2}/g,utf
|
490 |
A\x{a3}BC
|
491 |
|
492 |
/\W\W/g,utf
|
493 |
+\x{a3}==
|
494 |
|
495 |
/\W{2}/g,utf
|
496 |
+\x{a3}==
|
497 |
|
498 |
/\S/g,utf
|
499 |
\x{442}\x{435}\x{441}\x{442}
|
500 |
|
501 |
/[\S]/g,utf
|
502 |
\x{442}\x{435}\x{441}\x{442}
|
503 |
|
504 |
/\D/g,utf
|
505 |
\x{442}\x{435}\x{441}\x{442}
|
506 |
|
507 |
/[\D]/g,utf
|
508 |
\x{442}\x{435}\x{441}\x{442}
|
509 |
|
510 |
/\W/g,utf
|
511 |
\x{2442}\x{2435}\x{2441}\x{2442}
|
512 |
|
513 |
/[\W]/g,utf
|
514 |
\x{2442}\x{2435}\x{2441}\x{2442}
|
515 |
|
516 |
/[\S\s]*/utf
|
517 |
abc\n\r\x{442}\x{435}\x{441}\x{442}xyz
|
518 |
|
519 |
/[\x{41f}\S]/g,utf
|
520 |
\x{442}\x{435}\x{441}\x{442}
|
521 |
|
522 |
/.[^\S]./g,utf
|
523 |
abc def\x{442}\x{443}xyz\npqr
|
524 |
|
525 |
/.[^\S\n]./g,utf
|
526 |
abc def\x{442}\x{443}xyz\npqr
|
527 |
|
528 |
/[[:^alnum:]]/g,utf
|
529 |
+\x{2442}
|
530 |
|
531 |
/[[:^alpha:]]/g,utf
|
532 |
+\x{2442}
|
533 |
|
534 |
/[[:^ascii:]]/g,utf
|
535 |
A\x{442}
|
536 |
|
537 |
/[[:^blank:]]/g,utf
|
538 |
A\x{442}
|
539 |
|
540 |
/[[:^cntrl:]]/g,utf
|
541 |
A\x{442}
|
542 |
|
543 |
/[[:^digit:]]/g,utf
|
544 |
A\x{442}
|
545 |
|
546 |
/[[:^graph:]]/g,utf
|
547 |
\x19\x{e01ff}
|
548 |
|
549 |
/[[:^lower:]]/g,utf
|
550 |
A\x{422}
|
551 |
|
552 |
/[[:^print:]]/g,utf
|
553 |
\x{19}\x{e01ff}
|
554 |
|
555 |
/[[:^punct:]]/g,utf
|
556 |
A\x{442}
|
557 |
|
558 |
/[[:^space:]]/g,utf
|
559 |
A\x{442}
|
560 |
|
561 |
/[[:^upper:]]/g,utf
|
562 |
a\x{442}
|
563 |
|
564 |
/[[:^word:]]/g,utf
|
565 |
+\x{2442}
|
566 |
|
567 |
/[[:^xdigit:]]/g,utf
|
568 |
M\x{442}
|
569 |
|
570 |
/[^ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉƊƋƎƏƐƑƓƔƖƗƘƜƝƟƠƢƤƦƧƩƬƮƯƱƲƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶǷǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁΆΈΉΊΌΎΏΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫϒϓϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸԀԂԄԆԈԊԌԎԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸἈἉἊἋἌἍἎἏἘἙἚἛἜἝἨἩἪἫἬἭἮἯἸἹἺἻἼἽἾἿὈὉὊὋὌὍὙὛὝὟὨὩὪὫὬὭὮὯᾸᾹᾺΆῈΈῊΉῘῙῚΊῨῩῪΎῬῸΌῺΏabcdefghijklmnopqrstuvwxyzªµºßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżžſƀƃƅƈƌƍƒƕƙƚƛƞơƣƥƨƪƫƭưƴƶƹƺƽƾƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳȴȵȶȷȸȹȼȿɀɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΐάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϐϑϕϖϗϙϛϝϟϡϣϥϧϩϫϭϯϰϱϲϳϵϸϻϼабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹԁԃԅԇԉԋԍԏաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚẛạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹἀἁἂἃἄἅἆἇἐἑἒἓἔἕἠἡἢἣἤἥἦἧἰἱἲἳἴἵἶἷὀὁὂὃὄὅὐὑὒὓὔὕὖὗὠὡὢὣὤὥὦὧὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷιῂῃῄῆῇῐῑῒΐῖῗῠῡῢΰῤῥῦῧῲῳῴῶῷⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⴀⴁⴂⴃⴄⴅⴆⴇⴈⴉⴊⴋⴌⴍⴎⴏⴐⴑⴒⴓⴔⴕⴖⴗⴘⴙⴚⴛⴜⴝⴞⴟⴠⴡⴢⴣⴤⴥfffiflffifflſtstﬓﬔﬕﬖﬗ\d_^]/utf
|
571 |
|
572 |
/^[^d]*?$/
|
573 |
abc
|
574 |
|
575 |
/^[^d]*?$/utf
|
576 |
abc
|
577 |
|
578 |
/^[^d]*?$/i
|
579 |
abc
|
580 |
|
581 |
/^[^d]*?$/i,utf
|
582 |
abc
|
583 |
|
584 |
/(?i)[\xc3\xa9\xc3\xbd]|[\xc3\xa9\xc3\xbdA]/utf
|
585 |
|
586 |
/^[a\x{c0}]b/utf
|
587 |
\x{c0}b
|
588 |
|
589 |
/^([a\x{c0}]*?)aa/utf
|
590 |
a\x{c0}aaaa/
|
591 |
|
592 |
/^([a\x{c0}]*?)aa/utf
|
593 |
a\x{c0}aaaa/
|
594 |
a\x{c0}a\x{c0}aaa/
|
595 |
|
596 |
/^([a\x{c0}]*)aa/utf
|
597 |
a\x{c0}aaaa/
|
598 |
a\x{c0}a\x{c0}aaa/
|
599 |
|
600 |
/^([a\x{c0}]*)a\x{c0}/utf
|
601 |
a\x{c0}aaaa/
|
602 |
a\x{c0}a\x{c0}aaa/
|
603 |
|
604 |
/A*/g,utf
|
605 |
AAB\x{123}BAA
|
606 |
|
607 |
/(abc)\1/i,utf
|
608 |
\= Expect no match
|
609 |
abc
|
610 |
|
611 |
/(abc)\1/utf
|
612 |
\= Expect no match
|
613 |
abc
|
614 |
|
615 |
/a(*:a\x{1234}b)/utf,mark
|
616 |
abc
|
617 |
|
618 |
/a(*:a£b)/utf,mark
|
619 |
abc
|
620 |
|
621 |
# Noncharacters
|
622 |
|
623 |
/./utf
|
624 |
\x{fffe}
|
625 |
\x{ffff}
|
626 |
\x{1fffe}
|
627 |
\x{1ffff}
|
628 |
\x{2fffe}
|
629 |
\x{2ffff}
|
630 |
\x{3fffe}
|
631 |
\x{3ffff}
|
632 |
\x{4fffe}
|
633 |
\x{4ffff}
|
634 |
\x{5fffe}
|
635 |
\x{5ffff}
|
636 |
\x{6fffe}
|
637 |
\x{6ffff}
|
638 |
\x{7fffe}
|
639 |
\x{7ffff}
|
640 |
\x{8fffe}
|
641 |
\x{8ffff}
|
642 |
\x{9fffe}
|
643 |
\x{9ffff}
|
644 |
\x{afffe}
|
645 |
\x{affff}
|
646 |
\x{bfffe}
|
647 |
\x{bffff}
|
648 |
\x{cfffe}
|
649 |
\x{cffff}
|
650 |
\x{dfffe}
|
651 |
\x{dffff}
|
652 |
\x{efffe}
|
653 |
\x{effff}
|
654 |
\x{ffffe}
|
655 |
\x{fffff}
|
656 |
\x{10fffe}
|
657 |
\x{10ffff}
|
658 |
\x{fdd0}
|
659 |
\x{fdd1}
|
660 |
\x{fdd2}
|
661 |
\x{fdd3}
|
662 |
\x{fdd4}
|
663 |
\x{fdd5}
|
664 |
\x{fdd6}
|
665 |
\x{fdd7}
|
666 |
\x{fdd8}
|
667 |
\x{fdd9}
|
668 |
\x{fdda}
|
669 |
\x{fddb}
|
670 |
\x{fddc}
|
671 |
\x{fddd}
|
672 |
\x{fdde}
|
673 |
\x{fddf}
|
674 |
\x{fde0}
|
675 |
\x{fde1}
|
676 |
\x{fde2}
|
677 |
\x{fde3}
|
678 |
\x{fde4}
|
679 |
\x{fde5}
|
680 |
\x{fde6}
|
681 |
\x{fde7}
|
682 |
\x{fde8}
|
683 |
\x{fde9}
|
684 |
\x{fdea}
|
685 |
\x{fdeb}
|
686 |
\x{fdec}
|
687 |
\x{fded}
|
688 |
\x{fdee}
|
689 |
\x{fdef}
|
690 |
|
691 |
/^\d*\w{4}/utf
|
692 |
1234
|
693 |
\= Expect no match
|
694 |
123
|
695 |
|
696 |
/^[^b]*\w{4}/utf
|
697 |
aaaa
|
698 |
\= Expect no match
|
699 |
aaa
|
700 |
|
701 |
/^[^b]*\w{4}/i,utf
|
702 |
aaaa
|
703 |
\= Expect no match
|
704 |
aaa
|
705 |
|
706 |
/^\x{100}*.{4}/utf
|
707 |
\x{100}\x{100}\x{100}\x{100}
|
708 |
\= Expect no match
|
709 |
\x{100}\x{100}\x{100}
|
710 |
|
711 |
/^\x{100}*.{4}/i,utf
|
712 |
\x{100}\x{100}\x{100}\x{100}
|
713 |
\= Expect no match
|
714 |
\x{100}\x{100}\x{100}
|
715 |
|
716 |
/^a+[a\x{200}]/utf
|
717 |
aa
|
718 |
|
719 |
/^.\B.\B./utf
|
720 |
\x{10123}\x{10124}\x{10125}
|
721 |
|
722 |
/^#[^\x{ffff}]#[^\x{ffff}]#[^\x{ffff}]#/utf
|
723 |
#\x{10000}#\x{100}#\x{10ffff}#
|
724 |
|
725 |
# Unicode property support tests
|
726 |
|
727 |
/^\pC\pL\pM\pN\pP\pS\pZ</utf
|
728 |
\x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
|
729 |
\np\x{300}9!\$ <
|
730 |
\= Expect no match
|
731 |
ap\x{300}9!\$ <
|
732 |
|
733 |
/^\PC/utf
|
734 |
X
|
735 |
\= Expect no match
|
736 |
\x7f
|
737 |
|
738 |
/^\PL/utf
|
739 |
9
|
740 |
\= Expect no match
|
741 |
\x{c0}
|
742 |
|
743 |
/^\PM/utf
|
744 |
X
|
745 |
\= Expect no match
|
746 |
\x{30f}
|
747 |
|
748 |
/^\PN/utf
|
749 |
X
|
750 |
\= Expect no match
|
751 |
\x{660}
|
752 |
|
753 |
/^\PP/utf
|
754 |
X
|
755 |
\= Expect no match
|
756 |
\x{66c}
|
757 |
|
758 |
/^\PS/utf
|
759 |
X
|
760 |
\= Expect no match
|
761 |
\x{f01}
|
762 |
|
763 |
/^\PZ/utf
|
764 |
X
|
765 |
\= Expect no match
|
766 |
\x{1680}
|
767 |
|
768 |
/^\p{Cc}/utf
|
769 |
\x{017}
|
770 |
\x{09f}
|
771 |
\= Expect no match
|
772 |
\x{0600}
|
773 |
|
774 |
/^\p{Cf}/utf
|
775 |
\x{601}
|
776 |
\= Expect no match
|
777 |
\x{09f}
|
778 |
|
779 |
/^\p{Cn}/utf
|
780 |
\x{e0000}
|
781 |
\= Expect no match
|
782 |
\x{09f}
|
783 |
|
784 |
/^\p{Co}/utf
|
785 |
\x{f8ff}
|
786 |
\= Expect no match
|
787 |
\x{09f}
|
788 |
|
789 |
/^\p{Ll}/utf
|
790 |
a
|
791 |
\= Expect no match
|
792 |
Z
|
793 |
\x{e000}
|
794 |
|
795 |
/^\p{Lm}/utf
|
796 |
\x{2b0}
|
797 |
\= Expect no match
|
798 |
a
|
799 |
|
800 |
/^\p{Lo}/utf
|
801 |
\x{1bb}
|
802 |
\x{3400}
|
803 |
\x{3401}
|
804 |
\x{4d00}
|
805 |
\x{4db4}
|
806 |
\x{4db5}
|
807 |
\= Expect no match
|
808 |
a
|
809 |
\x{2b0}
|
810 |
\x{4db6}
|
811 |
|
812 |
/^\p{Lt}/utf
|
813 |
\x{1c5}
|
814 |
\= Expect no match
|
815 |
a
|
816 |
\x{2b0}
|
817 |
|
818 |
/^\p{Lu}/utf
|
819 |
A
|
820 |
\= Expect no match
|
821 |
\x{2b0}
|
822 |
|
823 |
/^\p{Mc}/utf
|
824 |
\x{903}
|
825 |
\= Expect no match
|
826 |
X
|
827 |
\x{300}
|
828 |
|
829 |
/^\p{Me}/utf
|
830 |
\x{488}
|
831 |
\= Expect no match
|
832 |
X
|
833 |
\x{903}
|
834 |
\x{300}
|
835 |
|
836 |
/^\p{Mn}/utf
|
837 |
\x{300}
|
838 |
\= Expect no match
|
839 |
X
|
840 |
\x{903}
|
841 |
|
842 |
/^\p{Nd}+/utf
|
843 |
0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
|
844 |
\x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
|
845 |
\x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
|
846 |
\= Expect no match
|
847 |
X
|
848 |
|
849 |
/^\p{Nl}/utf
|
850 |
\x{16ee}
|
851 |
\= Expect no match
|
852 |
X
|
853 |
\x{966}
|
854 |
|
855 |
/^\p{No}/utf
|
856 |
\x{b2}
|
857 |
\x{b3}
|
858 |
\= Expect no match
|
859 |
X
|
860 |
\x{16ee}
|
861 |
|
862 |
/^\p{Pc}/utf
|
863 |
\x5f
|
864 |
\x{203f}
|
865 |
\= Expect no match
|
866 |
X
|
867 |
-
|
868 |
\x{58a}
|
869 |
|
870 |
/^\p{Pd}/utf
|
871 |
-
|
872 |
\x{58a}
|
873 |
\= Expect no match
|
874 |
X
|
875 |
\x{203f}
|
876 |
|
877 |
/^\p{Pe}/utf
|
878 |
)
|
879 |
]
|
880 |
}
|
881 |
\x{f3b}
|
882 |
\= Expect no match
|
883 |
X
|
884 |
\x{203f}
|
885 |
(
|
886 |
[
|
887 |
{
|
888 |
\x{f3c}
|
889 |
|
890 |
/^\p{Pf}/utf
|
891 |
\x{bb}
|
892 |
\x{2019}
|
893 |
\= Expect no match
|
894 |
X
|
895 |
\x{203f}
|
896 |
|
897 |
/^\p{Pi}/utf
|
898 |
\x{ab}
|
899 |
\x{2018}
|
900 |
\= Expect no match
|
901 |
X
|
902 |
\x{203f}
|
903 |
|
904 |
/^\p{Po}/utf
|
905 |
!
|
906 |
\x{37e}
|
907 |
\= Expect no match
|
908 |
X
|
909 |
\x{203f}
|
910 |
|
911 |
/^\p{Ps}/utf
|
912 |
(
|
913 |
[
|
914 |
{
|
915 |
\x{f3c}
|
916 |
\= Expect no match
|
917 |
X
|
918 |
)
|
919 |
]
|
920 |
}
|
921 |
\x{f3b}
|
922 |
|
923 |
/^\p{Sk}/utf
|
924 |
\x{2c2}
|
925 |
\= Expect no match
|
926 |
X
|
927 |
\x{9f2}
|
928 |
|
929 |
/^\p{Sm}+/utf
|
930 |
+<|~\x{ac}\x{2044}
|
931 |
\= Expect no match
|
932 |
X
|
933 |
\x{9f2}
|
934 |
|
935 |
/^\p{So}/utf
|
936 |
\x{a6}
|
937 |
\x{482}
|
938 |
\= Expect no match
|
939 |
X
|
940 |
\x{9f2}
|
941 |
|
942 |
/^\p{Zl}/utf
|
943 |
\x{2028}
|
944 |
\= Expect no match
|
945 |
X
|
946 |
\x{2029}
|
947 |
|
948 |
/^\p{Zp}/utf
|
949 |
\x{2029}
|
950 |
\= Expect no match
|
951 |
X
|
952 |
\x{2028}
|
953 |
|
954 |
/\p{Nd}+(..)/utf
|
955 |
\x{660}\x{661}\x{662}ABC
|
956 |
|
957 |
/\p{Nd}+?(..)/utf
|
958 |
\x{660}\x{661}\x{662}ABC
|
959 |
|
960 |
/\p{Nd}{2,}(..)/utf
|
961 |
\x{660}\x{661}\x{662}ABC
|
962 |
|
963 |
/\p{Nd}{2,}?(..)/utf
|
964 |
\x{660}\x{661}\x{662}ABC
|
965 |
|
966 |
/\p{Nd}*(..)/utf
|
967 |
\x{660}\x{661}\x{662}ABC
|
968 |
|
969 |
/\p{Nd}*?(..)/utf
|
970 |
\x{660}\x{661}\x{662}ABC
|
971 |
|
972 |
/\p{Nd}{2}(..)/utf
|
973 |
\x{660}\x{661}\x{662}ABC
|
974 |
|
975 |
/\p{Nd}{2,3}(..)/utf
|
976 |
\x{660}\x{661}\x{662}ABC
|
977 |
|
978 |
/\p{Nd}{2,3}?(..)/utf
|
979 |
\x{660}\x{661}\x{662}ABC
|
980 |
|
981 |
/\p{Nd}?(..)/utf
|
982 |
\x{660}\x{661}\x{662}ABC
|
983 |
|
984 |
/\p{Nd}??(..)/utf
|
985 |
\x{660}\x{661}\x{662}ABC
|
986 |
|
987 |
/\p{Nd}*+(..)/utf
|
988 |
\x{660}\x{661}\x{662}ABC
|
989 |
|
990 |
/\p{Nd}*+(...)/utf
|
991 |
\x{660}\x{661}\x{662}ABC
|
992 |
|
993 |
/\p{Nd}*+(....)/utf
|
994 |
\= Expect no match
|
995 |
\x{660}\x{661}\x{662}ABC
|
996 |
|
997 |
/(?<=A\p{Nd})XYZ/utf
|
998 |
A2XYZ
|
999 |
123A5XYZPQR
|
1000 |
ABA\x{660}XYZpqr
|
1001 |
\= Expect no match
|
1002 |
AXYZ
|
1003 |
XYZ
|
1004 |
|
1005 |
/(?<!\pL)XYZ/utf
|
1006 |
1XYZ
|
1007 |
AB=XYZ..
|
1008 |
XYZ
|
1009 |
\= Expect no match
|
1010 |
WXYZ
|
1011 |
|
1012 |
/[\P{Nd}]+/utf
|
1013 |
abcd
|
1014 |
\= Expect no match
|
1015 |
1234
|
1016 |
|
1017 |
/\D+/utf
|
1018 |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
1019 |
\= Expect no match
|
1020 |
11111111111111111111111111111111111111111111111111111111111111111111111
|
1021 |
|
1022 |
/\P{Nd}+/utf
|
1023 |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
1024 |
\= Expect no match
|
1025 |
11111111111111111111111111111111111111111111111111111111111111111111111
|
1026 |
|
1027 |
/[\D]+/utf
|
1028 |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
1029 |
\= Expect no match
|
1030 |
11111111111111111111111111111111111111111111111111111111111111111111111
|
1031 |
|
1032 |
/[\P{Nd}]+/utf
|
1033 |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
1034 |
\= Expect no match
|
1035 |
11111111111111111111111111111111111111111111111111111111111111111111111
|
1036 |
|
1037 |
/[\D\P{Nd}]+/utf
|
1038 |
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
1039 |
\= Expect no match
|
1040 |
11111111111111111111111111111111111111111111111111111111111111111111111
|
1041 |
|
1042 |
/\pL/utf
|
1043 |
a
|
1044 |
A
|
1045 |
|
1046 |
/\pL/i,utf
|
1047 |
a
|
1048 |
A
|
1049 |
|
1050 |
/\p{Lu}/utf
|
1051 |
A
|
1052 |
aZ
|
1053 |
\= Expect no match
|
1054 |
abc
|
1055 |
|
1056 |
/\p{Ll}/utf
|
1057 |
a
|
1058 |
Az
|
1059 |
\= Expect no match
|
1060 |
ABC
|
1061 |
|
1062 |
/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
|
1063 |
A\x{391}\x{10427}\x{ff3a}\x{1fb0}
|
1064 |
\= Expect no match
|
1065 |
a\x{391}\x{10427}\x{ff3a}\x{1fb0}
|
1066 |
A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
|
1067 |
A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
|
1068 |
A\x{391}\x{10427}\x{ff5a}\x{1fb0}
|
1069 |
A\x{391}\x{10427}\x{ff3a}\x{1fb8}
|
1070 |
|
1071 |
/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
|
1072 |
A\x{391}\x{10427}\x{ff3a}\x{1fb0}
|
1073 |
a\x{391}\x{10427}\x{ff3a}\x{1fb0}
|
1074 |
A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
|
1075 |
A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
|
1076 |
A\x{391}\x{10427}\x{ff5a}\x{1fb0}
|
1077 |
A\x{391}\x{10427}\x{ff3a}\x{1fb8}
|
1078 |
|
1079 |
/\x{391}+/i,utf
|
1080 |
\x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
|
1081 |
|
1082 |
/\x{391}{3,5}(.)/i,utf
|
1083 |
\x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
|
1084 |
|
1085 |
/\x{391}{3,5}?(.)/i,utf
|
1086 |
\x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
|
1087 |
|
1088 |
/[\x{391}\x{ff3a}]/i,utf
|
1089 |
\x{391}
|
1090 |
\x{ff3a}
|
1091 |
\x{3b1}
|
1092 |
\x{ff5a}
|
1093 |
|
1094 |
/^(\X*)C/utf
|
1095 |
A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
|
1096 |
A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
|
1097 |
|
1098 |
/^(\X*?)C/utf
|
1099 |
A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
|
1100 |
A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
|
1101 |
|
1102 |
/^(\X*)(.)/utf
|
1103 |
A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
|
1104 |
A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
|
1105 |
|
1106 |
/^(\X*?)(.)/utf
|
1107 |
A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
|
1108 |
A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
|
1109 |
|
1110 |
/^\X(.)/utf
|
1111 |
\= Expect no match
|
1112 |
A\x{300}\x{301}\x{302}
|
1113 |
|
1114 |
/^\X{2,3}(.)/utf
|
1115 |
A\x{300}\x{301}B\x{300}X
|
1116 |
A\x{300}\x{301}B\x{300}C\x{300}\x{301}
|
1117 |
A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
|
1118 |
A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
|
1119 |
|
1120 |
/^\X{2,3}?(.)/utf
|
1121 |
A\x{300}\x{301}B\x{300}X
|
1122 |
A\x{300}\x{301}B\x{300}C\x{300}\x{301}
|
1123 |
A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
|
1124 |
A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
|
1125 |
|
1126 |
/^\X/utf
|
1127 |
A
|
1128 |
A\x{300}BC
|
1129 |
A\x{300}\x{301}\x{302}BC
|
1130 |
\x{300}
|
1131 |
|
1132 |
/^\p{Han}+/utf
|
1133 |
\x{2e81}\x{3007}\x{2f804}\x{31a0}
|
1134 |
\= Expect no match
|
1135 |
\x{2e7f}
|
1136 |
|
1137 |
/^\P{Katakana}+/utf
|
1138 |
\x{3105}
|
1139 |
\= Expect no match
|
1140 |
\x{30ff}
|
1141 |
|
1142 |
/^[\p{Arabic}]/utf
|
1143 |
\x{06e9}
|
1144 |
\x{060b}
|
1145 |
\= Expect no match
|
1146 |
X\x{06e9}
|
1147 |
|
1148 |
/^[\P{Yi}]/utf
|
1149 |
\x{2f800}
|
1150 |
\= Expect no match
|
1151 |
\x{a014}
|
1152 |
\x{a4c6}
|
1153 |
|
1154 |
/^\p{Any}X/utf
|
1155 |
AXYZ
|
1156 |
\x{1234}XYZ
|
1157 |
\= Expect no match
|
1158 |
X
|
1159 |
|
1160 |
/^\P{Any}X/utf
|
1161 |
\= Expect no match
|
1162 |
AX
|
1163 |
|
1164 |
/^\p{Any}?X/utf
|
1165 |
XYZ
|
1166 |
AXYZ
|
1167 |
\x{1234}XYZ
|
1168 |
\= Expect no match
|
1169 |
ABXYZ
|
1170 |
|
1171 |
/^\P{Any}?X/utf
|
1172 |
XYZ
|
1173 |
\= Expect no match
|
1174 |
AXYZ
|
1175 |
\x{1234}XYZ
|
1176 |
ABXYZ
|
1177 |
|
1178 |
/^\p{Any}+X/utf
|
1179 |
AXYZ
|
1180 |
\x{1234}XYZ
|
1181 |
A\x{1234}XYZ
|
1182 |
\= Expect no match
|
1183 |
XYZ
|
1184 |
|
1185 |
/^\P{Any}+X/utf
|
1186 |
\= Expect no match
|
1187 |
AXYZ
|
1188 |
\x{1234}XYZ
|
1189 |
A\x{1234}XYZ
|
1190 |
XYZ
|
1191 |
|
1192 |
/^\p{Any}*X/utf
|
1193 |
XYZ
|
1194 |
AXYZ
|
1195 |
\x{1234}XYZ
|
1196 |
A\x{1234}XYZ
|
1197 |
|
1198 |
/^\P{Any}*X/utf
|
1199 |
XYZ
|
1200 |
\= Expect no match
|
1201 |
AXYZ
|
1202 |
\x{1234}XYZ
|
1203 |
A\x{1234}XYZ
|
1204 |
|
1205 |
/^[\p{Any}]X/utf
|
1206 |
AXYZ
|
1207 |
\x{1234}XYZ
|
1208 |
\= Expect no match
|
1209 |
X
|
1210 |
|
1211 |
/^[\P{Any}]X/utf
|
1212 |
\= Expect no match
|
1213 |
AX
|
1214 |
|
1215 |
/^[\p{Any}]?X/utf
|
1216 |
XYZ
|
1217 |
AXYZ
|
1218 |
\x{1234}XYZ
|
1219 |
\= Expect no match
|
1220 |
ABXYZ
|
1221 |
|
1222 |
/^[\P{Any}]?X/utf
|
1223 |
XYZ
|
1224 |
\= Expect no match
|
1225 |
AXYZ
|
1226 |
\x{1234}XYZ
|
1227 |
ABXYZ
|
1228 |
|
1229 |
/^[\p{Any}]+X/utf
|
1230 |
AXYZ
|
1231 |
\x{1234}XYZ
|
1232 |
A\x{1234}XYZ
|
1233 |
\= Expect no match
|
1234 |
XYZ
|
1235 |
|
1236 |
/^[\P{Any}]+X/utf
|
1237 |
\= Expect no match
|
1238 |
AXYZ
|
1239 |
\x{1234}XYZ
|
1240 |
A\x{1234}XYZ
|
1241 |
XYZ
|
1242 |
|
1243 |
/^[\p{Any}]*X/utf
|
1244 |
XYZ
|
1245 |
AXYZ
|
1246 |
\x{1234}XYZ
|
1247 |
A\x{1234}XYZ
|
1248 |
|
1249 |
/^[\P{Any}]*X/utf
|
1250 |
XYZ
|
1251 |
\= Expect no match
|
1252 |
AXYZ
|
1253 |
\x{1234}XYZ
|
1254 |
A\x{1234}XYZ
|
1255 |
|
1256 |
/^\p{Any}{3,5}?/utf
|
1257 |
abcdefgh
|
1258 |
\x{1234}\n\r\x{3456}xyz
|
1259 |
|
1260 |
/^\p{Any}{3,5}/utf
|
1261 |
abcdefgh
|
1262 |
\x{1234}\n\r\x{3456}xyz
|
1263 |
|
1264 |
/^\P{Any}{3,5}?/utf
|
1265 |
\= Expect no match
|
1266 |
abcdefgh
|
1267 |
\x{1234}\n\r\x{3456}xyz
|
1268 |
|
1269 |
/^\p{L&}X/utf
|
1270 |
AXY
|
1271 |
aXY
|
1272 |
\x{1c5}XY
|
1273 |
\= Expect no match
|
1274 |
\x{1bb}XY
|
1275 |
\x{2b0}XY
|
1276 |
!XY
|
1277 |
|
1278 |
/^[\p{L&}]X/utf
|
1279 |
AXY
|
1280 |
aXY
|
1281 |
\x{1c5}XY
|
1282 |
\= Expect no match
|
1283 |
\x{1bb}XY
|
1284 |
\x{2b0}XY
|
1285 |
!XY
|
1286 |
|
1287 |
/^\p{L&}+X/utf
|
1288 |
AXY
|
1289 |
aXY
|
1290 |
AbcdeXyz
|
1291 |
\x{1c5}AbXY
|
1292 |
abcDEXypqreXlmn
|
1293 |
\= Expect no match
|
1294 |
\x{1bb}XY
|
1295 |
\x{2b0}XY
|
1296 |
!XY
|
1297 |
|
1298 |
/^[\p{L&}]+X/utf
|
1299 |
AXY
|
1300 |
aXY
|
1301 |
AbcdeXyz
|
1302 |
\x{1c5}AbXY
|
1303 |
abcDEXypqreXlmn
|
1304 |
\= Expect no match
|
1305 |
\x{1bb}XY
|
1306 |
\x{2b0}XY
|
1307 |
!XY
|
1308 |
|
1309 |
/^\p{L&}+?X/utf
|
1310 |
AXY
|
1311 |
aXY
|
1312 |
AbcdeXyz
|
1313 |
\x{1c5}AbXY
|
1314 |
abcDEXypqreXlmn
|
1315 |
\= Expect no match
|
1316 |
\x{1bb}XY
|
1317 |
\x{2b0}XY
|
1318 |
!XY
|
1319 |
|
1320 |
/^[\p{L&}]+?X/utf
|
1321 |
AXY
|
1322 |
aXY
|
1323 |
AbcdeXyz
|
1324 |
\x{1c5}AbXY
|
1325 |
abcDEXypqreXlmn
|
1326 |
\= Expect no match
|
1327 |
\x{1bb}XY
|
1328 |
\x{2b0}XY
|
1329 |
!XY
|
1330 |
|
1331 |
/^\P{L&}X/utf
|
1332 |
!XY
|
1333 |
\x{1bb}XY
|
1334 |
\x{2b0}XY
|
1335 |
\= Expect no match
|
1336 |
\x{1c5}XY
|
1337 |
AXY
|
1338 |
|
1339 |
/^[\P{L&}]X/utf
|
1340 |
!XY
|
1341 |
\x{1bb}XY
|
1342 |
\x{2b0}XY
|
1343 |
\= Expect no match
|
1344 |
\x{1c5}XY
|
1345 |
AXY
|
1346 |
|
1347 |
/^(\p{Z}[^\p{C}\p{Z}]+)*$/
|
1348 |
\xa0!
|
1349 |
|
1350 |
/^[\pL](abc)(?1)/
|
1351 |
AabcabcYZ
|
1352 |
|
1353 |
/([\pL]=(abc))*X/
|
1354 |
L=abcX
|
1355 |
|
1356 |
/^\p{Balinese}\p{Cuneiform}\p{Nko}\p{Phags_Pa}\p{Phoenician}/utf
|
1357 |
\x{1b00}\x{12000}\x{7c0}\x{a840}\x{10900}
|
1358 |
|
1359 |
# Check property support in non-UTF mode
|
1360 |
|
1361 |
/\p{L}{4}/
|
1362 |
123abcdefg
|
1363 |
123abc\xc4\xc5zz
|
1364 |
|
1365 |
/\X{1,3}\d/
|
1366 |
\= Expect no match
|
1367 |
\x8aBCD
|
1368 |
|
1369 |
/\X?\d/
|
1370 |
\= Expect no match
|
1371 |
\x8aBCD
|
1372 |
|
1373 |
/\P{L}?\d/
|
1374 |
\= Expect no match
|
1375 |
\x8aBCD
|
1376 |
|
1377 |
/[\PPP\x8a]{1,}\x80/
|
1378 |
A\x80
|
1379 |
|
1380 |
/^[\p{Arabic}]/utf
|
1381 |
\x{604}
|
1382 |
\x{60e}
|
1383 |
\x{656}
|
1384 |
\x{657}
|
1385 |
\x{658}
|
1386 |
\x{659}
|
1387 |
\x{65a}
|
1388 |
\x{65b}
|
1389 |
\x{65c}
|
1390 |
\x{65d}
|
1391 |
\x{65e}
|
1392 |
\x{65f}
|
1393 |
\x{66a}
|
1394 |
\x{6e9}
|
1395 |
\x{6ef}
|
1396 |
\x{6fa}
|
1397 |
|
1398 |
/^\p{Cyrillic}/utf
|
1399 |
\x{1d2b}
|
1400 |
|
1401 |
/^\p{Common}/utf
|
1402 |
\x{2116}
|
1403 |
\x{1D183}
|
1404 |
|
1405 |
/^\p{Inherited}/utf
|
1406 |
\x{200c}
|
1407 |
\= Expect no match
|
1408 |
\x{64a}
|
1409 |
\x{656}
|
1410 |
|
1411 |
/^\p{Shavian}/utf
|
1412 |
\x{10450}
|
1413 |
\x{1047f}
|
1414 |
|
1415 |
/^\p{Deseret}/utf
|
1416 |
\x{10400}
|
1417 |
\x{1044f}
|
1418 |
|
1419 |
/^\p{Osmanya}/utf
|
1420 |
\x{10480}
|
1421 |
\x{1049d}
|
1422 |
\x{104a0}
|
1423 |
\x{104a9}
|
1424 |
\= Expect no match
|
1425 |
\x{1049e}
|
1426 |
\x{1049f}
|
1427 |
\x{104aa}
|
1428 |
|
1429 |
/\p{Carian}\p{Cham}\p{Kayah_Li}\p{Lepcha}\p{Lycian}\p{Lydian}\p{Ol_Chiki}\p{Rejang}\p{Saurashtra}\p{Sundanese}\p{Vai}/utf
|
1430 |
\x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
|
1431 |
|
1432 |
/\x{a77d}\x{1d79}/i,utf
|
1433 |
\x{a77d}\x{1d79}
|
1434 |
\x{1d79}\x{a77d}
|
1435 |
|
1436 |
/\x{a77d}\x{1d79}/utf
|
1437 |
\x{a77d}\x{1d79}
|
1438 |
\= Expect no match
|
1439 |
\x{1d79}\x{a77d}
|
1440 |
|
1441 |
/(A)\1/i,utf
|
1442 |
AA
|
1443 |
Aa
|
1444 |
aa
|
1445 |
aA
|
1446 |
|
1447 |
/(\x{10a})\1/i,utf
|
1448 |
\x{10a}\x{10a}
|
1449 |
\x{10a}\x{10b}
|
1450 |
\x{10b}\x{10b}
|
1451 |
\x{10b}\x{10a}
|
1452 |
|
1453 |
# The next two tests are for property support in non-UTF mode
|
1454 |
|
1455 |
/(?:\p{Lu}|\x20)+/
|
1456 |
\x41\x20\x50\xC2\x54\xC9\x20\x54\x4F\x44\x41\x59
|
1457 |
|
1458 |
/[\p{Lu}\x20]+/
|
1459 |
\x41\x20\x50\xC2\x54\xC9\x20\x54\x4F\x44\x41\x59
|
1460 |
|
1461 |
/\p{Avestan}\p{Bamum}\p{Egyptian_Hieroglyphs}\p{Imperial_Aramaic}\p{Inscriptional_Pahlavi}\p{Inscriptional_Parthian}\p{Javanese}\p{Kaithi}\p{Lisu}\p{Meetei_Mayek}\p{Old_South_Arabian}\p{Old_Turkic}\p{Samaritan}\p{Tai_Tham}\p{Tai_Viet}/utf
|
1462 |
\x{10b00}\x{a6ef}\x{13007}\x{10857}\x{10b78}\x{10b58}\x{a980}\x{110c1}\x{a4ff}\x{abc0}\x{10a7d}\x{10c48}\x{0800}\x{1aad}\x{aac0}
|
1463 |
|
1464 |
/^\w+/utf,ucp
|
1465 |
Az_\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
|
1466 |
|
1467 |
/^[[:xdigit:]]*/utf,ucp
|
1468 |
1a\x{660}\x{bef}\x{16ee}
|
1469 |
|
1470 |
/^\d+/utf,ucp
|
1471 |
1\x{660}\x{bef}\x{16ee}
|
1472 |
|
1473 |
/^[[:digit:]]+/utf,ucp
|
1474 |
1\x{660}\x{bef}\x{16ee}
|
1475 |
|
1476 |
/^>\s+/utf,ucp
|
1477 |
>\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b}
|
1478 |
|
1479 |
/^>\pZ+/utf,ucp
|
1480 |
>\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b}
|
1481 |
|
1482 |
/^>[[:space:]]*/utf,ucp
|
1483 |
>\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b}
|
1484 |
|
1485 |
/^>[[:blank:]]*/utf,ucp
|
1486 |
>\x{20}\x{a0}\x{1680}\x{2000}\x{202f}\x{9}\x{b}\x{2028}
|
1487 |
|
1488 |
/^[[:alpha:]]*/utf,ucp
|
1489 |
Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}
|
1490 |
|
1491 |
/^[[:alnum:]]*/utf,ucp
|
1492 |
Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
|
1493 |
|
1494 |
/^[[:cntrl:]]*/utf,ucp
|
1495 |
\x{0}\x{09}\x{1f}\x{7f}\x{9f}
|
1496 |
|
1497 |
/^[[:graph:]]*/utf,ucp
|
1498 |
A\x{a1}\x{a0}
|
1499 |
|
1500 |
/^[[:print:]]*/utf,ucp
|
1501 |
A z\x{a0}\x{a1}
|
1502 |
|
1503 |
/^[[:punct:]]*/utf,ucp
|
1504 |
.+\x{a1}\x{a0}
|
1505 |
|
1506 |
/\p{Zs}*?\R/
|
1507 |
\= Expect no match
|
1508 |
a\xFCb
|
1509 |
|
1510 |
/\p{Zs}*\R/
|
1511 |
\= Expect no match
|
1512 |
a\xFCb
|
1513 |
|
1514 |
/ⱥ/i,utf
|
1515 |
ⱥ
|
1516 |
Ⱥx
|
1517 |
Ⱥ
|
1518 |
|
1519 |
/[ⱥ]/i,utf
|
1520 |
ⱥ
|
1521 |
Ⱥx
|
1522 |
Ⱥ
|
1523 |
|
1524 |
/Ⱥ/i,utf
|
1525 |
Ⱥ
|
1526 |
ⱥ
|
1527 |
|
1528 |
# These are tests for extended grapheme clusters
|
1529 |
|
1530 |
/^\X/utf,aftertext
|
1531 |
G\x{34e}\x{34e}X
|
1532 |
\x{34e}\x{34e}X
|
1533 |
\x04X
|
1534 |
\x{1100}X
|
1535 |
\x{1100}\x{34e}X
|
1536 |
\x{1b04}\x{1b04}X
|
1537 |
*These match up to the roman letters
|
1538 |
\x{1111}\x{1111}L,L
|
1539 |
\x{1111}\x{1111}\x{1169}L,L,V
|
1540 |
\x{1111}\x{ae4c}L, LV
|
1541 |
\x{1111}\x{ad89}L, LVT
|
1542 |
\x{1111}\x{ae4c}\x{1169}L, LV, V
|
1543 |
\x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
|
1544 |
\x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
|
1545 |
\x{1111}\x{ad89}\x{11fe}L, LVT, T
|
1546 |
\x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
|
1547 |
\x{ad89}\x{11fe}\x{11fe}LVT, T, T
|
1548 |
*These match just the first codepoint (invalid sequence)
|
1549 |
\x{1111}\x{11fe}L, T
|
1550 |
\x{ae4c}\x{1111}LV, L
|
1551 |
\x{ae4c}\x{ae4c}LV, LV
|
1552 |
\x{ae4c}\x{ad89}LV, LVT
|
1553 |
\x{1169}\x{1111}V, L
|
1554 |
\x{1169}\x{ae4c}V, LV
|
1555 |
\x{1169}\x{ad89}V, LVT
|
1556 |
\x{ad89}\x{1111}LVT, L
|
1557 |
\x{ad89}\x{1169}LVT, V
|
1558 |
\x{ad89}\x{ae4c}LVT, LV
|
1559 |
\x{ad89}\x{ad89}LVT, LVT
|
1560 |
\x{11fe}\x{1111}T, L
|
1561 |
\x{11fe}\x{1169}T, V
|
1562 |
\x{11fe}\x{ae4c}T, LV
|
1563 |
\x{11fe}\x{ad89}T, LVT
|
1564 |
*Test extend and spacing mark
|
1565 |
\x{1111}\x{ae4c}\x{0711}L, LV, extend
|
1566 |
\x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
|
1567 |
\x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
|
1568 |
*Test CR, LF, and control
|
1569 |
\x0d\x{0711}CR, extend
|
1570 |
\x0d\x{1b04}CR, spacingmark
|
1571 |
\x0a\x{0711}LF, extend
|
1572 |
\x0a\x{1b04}LF, spacingmark
|
1573 |
\x0b\x{0711}Control, extend
|
1574 |
\x09\x{1b04}Control, spacingmark
|
1575 |
*There are no Prepend characters, so we can't test Prepend, CR
|
1576 |
|
1577 |
/^(?>\X{2})X/utf,aftertext
|
1578 |
\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
|
1579 |
|
1580 |
/^\X{2,4}X/utf,aftertext
|
1581 |
\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
|
1582 |
\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
|
1583 |
\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
|
1584 |
|
1585 |
/^\X{2,4}?X/utf,aftertext
|
1586 |
\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
|
1587 |
\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
|
1588 |
\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
|
1589 |
|
1590 |
/\X*Z/utf,no_start_optimize
|
1591 |
\= Expect no match
|
1592 |
A\x{300}
|
1593 |
|
1594 |
/\X*(.)/utf,no_start_optimize
|
1595 |
A\x{1111}\x{ae4c}\x{1169}
|
1596 |
|
1597 |
# --------------------------------------------
|
1598 |
|
1599 |
/\x{1e9e}+/i,utf
|
1600 |
\x{1e9e}\x{00df}
|
1601 |
|
1602 |
/[z\x{1e9e}]+/i,utf
|
1603 |
\x{1e9e}\x{00df}
|
1604 |
|
1605 |
/\x{00df}+/i,utf
|
1606 |
\x{1e9e}\x{00df}
|
1607 |
|
1608 |
/[z\x{00df}]+/i,utf
|
1609 |
\x{1e9e}\x{00df}
|
1610 |
|
1611 |
/\x{1f88}+/i,utf
|
1612 |
\x{1f88}\x{1f80}
|
1613 |
|
1614 |
/[z\x{1f88}]+/i,utf
|
1615 |
\x{1f88}\x{1f80}
|
1616 |
|
1617 |
# Check a reference with more than one other case
|
1618 |
|
1619 |
/^(\x{00b5})\1{2}$/i,utf
|
1620 |
\x{00b5}\x{039c}\x{03bc}
|
1621 |
|
1622 |
# Characters with more than one other case; test in classes
|
1623 |
|
1624 |
/[z\x{00b5}]+/i,utf
|
1625 |
\x{00b5}\x{039c}\x{03bc}
|
1626 |
|
1627 |
/[z\x{039c}]+/i,utf
|
1628 |
\x{00b5}\x{039c}\x{03bc}
|
1629 |
|
1630 |
/[z\x{03bc}]+/i,utf
|
1631 |
\x{00b5}\x{039c}\x{03bc}
|
1632 |
|
1633 |
/[z\x{00c5}]+/i,utf
|
1634 |
\x{00c5}\x{00e5}\x{212b}
|
1635 |
|
1636 |
/[z\x{00e5}]+/i,utf
|
1637 |
\x{00c5}\x{00e5}\x{212b}
|
1638 |
|
1639 |
/[z\x{212b}]+/i,utf
|
1640 |
\x{00c5}\x{00e5}\x{212b}
|
1641 |
|
1642 |
/[z\x{01c4}]+/i,utf
|
1643 |
\x{01c4}\x{01c5}\x{01c6}
|
1644 |
|
1645 |
/[z\x{01c5}]+/i,utf
|
1646 |
\x{01c4}\x{01c5}\x{01c6}
|
1647 |
|
1648 |
/[z\x{01c6}]+/i,utf
|
1649 |
\x{01c4}\x{01c5}\x{01c6}
|
1650 |
|
1651 |
/[z\x{01c7}]+/i,utf
|
1652 |
\x{01c7}\x{01c8}\x{01c9}
|
1653 |
|
1654 |
/[z\x{01c8}]+/i,utf
|
1655 |
\x{01c7}\x{01c8}\x{01c9}
|
1656 |
|
1657 |
/[z\x{01c9}]+/i,utf
|
1658 |
\x{01c7}\x{01c8}\x{01c9}
|
1659 |
|
1660 |
/[z\x{01ca}]+/i,utf
|
1661 |
\x{01ca}\x{01cb}\x{01cc}
|
1662 |
|
1663 |
/[z\x{01cb}]+/i,utf
|
1664 |
\x{01ca}\x{01cb}\x{01cc}
|
1665 |
|
1666 |
/[z\x{01cc}]+/i,utf
|
1667 |
\x{01ca}\x{01cb}\x{01cc}
|
1668 |
|
1669 |
/[z\x{01f1}]+/i,utf
|
1670 |
\x{01f1}\x{01f2}\x{01f3}
|
1671 |
|
1672 |
/[z\x{01f2}]+/i,utf
|
1673 |
\x{01f1}\x{01f2}\x{01f3}
|
1674 |
|
1675 |
/[z\x{01f3}]+/i,utf
|
1676 |
\x{01f1}\x{01f2}\x{01f3}
|
1677 |
|
1678 |
/[z\x{0345}]+/i,utf
|
1679 |
\x{0345}\x{0399}\x{03b9}\x{1fbe}
|
1680 |
|
1681 |
/[z\x{0399}]+/i,utf
|
1682 |
\x{0345}\x{0399}\x{03b9}\x{1fbe}
|
1683 |
|
1684 |
/[z\x{03b9}]+/i,utf
|
1685 |
\x{0345}\x{0399}\x{03b9}\x{1fbe}
|
1686 |
|
1687 |
/[z\x{1fbe}]+/i,utf
|
1688 |
\x{0345}\x{0399}\x{03b9}\x{1fbe}
|
1689 |
|
1690 |
/[z\x{0392}]+/i,utf
|
1691 |
\x{0392}\x{03b2}\x{03d0}
|
1692 |
|
1693 |
/[z\x{03b2}]+/i,utf
|
1694 |
\x{0392}\x{03b2}\x{03d0}
|
1695 |
|
1696 |
/[z\x{03d0}]+/i,utf
|
1697 |
\x{0392}\x{03b2}\x{03d0}
|
1698 |
|
1699 |
/[z\x{0395}]+/i,utf
|
1700 |
\x{0395}\x{03b5}\x{03f5}
|
1701 |
|
1702 |
/[z\x{03b5}]+/i,utf
|
1703 |
\x{0395}\x{03b5}\x{03f5}
|
1704 |
|
1705 |
/[z\x{03f5}]+/i,utf
|
1706 |
\x{0395}\x{03b5}\x{03f5}
|
1707 |
|
1708 |
/[z\x{0398}]+/i,utf
|
1709 |
\x{0398}\x{03b8}\x{03d1}\x{03f4}
|
1710 |
|
1711 |
/[z\x{03b8}]+/i,utf
|
1712 |
\x{0398}\x{03b8}\x{03d1}\x{03f4}
|
1713 |
|
1714 |
/[z\x{03d1}]+/i,utf
|
1715 |
\x{0398}\x{03b8}\x{03d1}\x{03f4}
|
1716 |
|
1717 |
/[z\x{03f4}]+/i,utf
|
1718 |
\x{0398}\x{03b8}\x{03d1}\x{03f4}
|
1719 |
|
1720 |
/[z\x{039a}]+/i,utf
|
1721 |
\x{039a}\x{03ba}\x{03f0}
|
1722 |
|
1723 |
/[z\x{03ba}]+/i,utf
|
1724 |
\x{039a}\x{03ba}\x{03f0}
|
1725 |
|
1726 |
/[z\x{03f0}]+/i,utf
|
1727 |
\x{039a}\x{03ba}\x{03f0}
|
1728 |
|
1729 |
/[z\x{03a0}]+/i,utf
|
1730 |
\x{03a0}\x{03c0}\x{03d6}
|
1731 |
|
1732 |
/[z\x{03c0}]+/i,utf
|
1733 |
\x{03a0}\x{03c0}\x{03d6}
|
1734 |
|
1735 |
/[z\x{03d6}]+/i,utf
|
1736 |
\x{03a0}\x{03c0}\x{03d6}
|
1737 |
|
1738 |
/[z\x{03a1}]+/i,utf
|
1739 |
\x{03a1}\x{03c1}\x{03f1}
|
1740 |
|
1741 |
/[z\x{03c1}]+/i,utf
|
1742 |
\x{03a1}\x{03c1}\x{03f1}
|
1743 |
|
1744 |
/[z\x{03f1}]+/i,utf
|
1745 |
\x{03a1}\x{03c1}\x{03f1}
|
1746 |
|
1747 |
/[z\x{03a3}]+/i,utf
|
1748 |
\x{03A3}\x{03C2}\x{03C3}
|
1749 |
|
1750 |
/[z\x{03c2}]+/i,utf
|
1751 |
\x{03A3}\x{03C2}\x{03C3}
|
1752 |
|
1753 |
/[z\x{03c3}]+/i,utf
|
1754 |
\x{03A3}\x{03C2}\x{03C3}
|
1755 |
|
1756 |
/[z\x{03a6}]+/i,utf
|
1757 |
\x{03a6}\x{03c6}\x{03d5}
|
1758 |
|
1759 |
/[z\x{03c6}]+/i,utf
|
1760 |
\x{03a6}\x{03c6}\x{03d5}
|
1761 |
|
1762 |
/[z\x{03d5}]+/i,utf
|
1763 |
\x{03a6}\x{03c6}\x{03d5}
|
1764 |
|
1765 |
/[z\x{03c9}]+/i,utf
|
1766 |
\x{03c9}\x{03a9}\x{2126}
|
1767 |
|
1768 |
/[z\x{03a9}]+/i,utf
|
1769 |
\x{03c9}\x{03a9}\x{2126}
|
1770 |
|
1771 |
/[z\x{2126}]+/i,utf
|
1772 |
\x{03c9}\x{03a9}\x{2126}
|
1773 |
|
1774 |
/[z\x{1e60}]+/i,utf
|
1775 |
\x{1e60}\x{1e61}\x{1e9b}
|
1776 |
|
1777 |
/[z\x{1e61}]+/i,utf
|
1778 |
\x{1e60}\x{1e61}\x{1e9b}
|
1779 |
|
1780 |
/[z\x{1e9b}]+/i,utf
|
1781 |
\x{1e60}\x{1e61}\x{1e9b}
|
1782 |
|
1783 |
# Perl 5.12.4 gets these wrong, but 5.15.3 is OK
|
1784 |
|
1785 |
/[z\x{004b}]+/i,utf
|
1786 |
\x{004b}\x{006b}\x{212a}
|
1787 |
|
1788 |
/[z\x{006b}]+/i,utf
|
1789 |
\x{004b}\x{006b}\x{212a}
|
1790 |
|
1791 |
/[z\x{212a}]+/i,utf
|
1792 |
\x{004b}\x{006b}\x{212a}
|
1793 |
|
1794 |
/[z\x{0053}]+/i,utf
|
1795 |
\x{0053}\x{0073}\x{017f}
|
1796 |
|
1797 |
/[z\x{0073}]+/i,utf
|
1798 |
\x{0053}\x{0073}\x{017f}
|
1799 |
|
1800 |
/[z\x{017f}]+/i,utf
|
1801 |
\x{0053}\x{0073}\x{017f}
|
1802 |
|
1803 |
# --------------------------------------
|
1804 |
|
1805 |
/(ΣΆΜΟΣ) \1/i,utf
|
1806 |
ΣΆΜΟΣ ΣΆΜΟΣ
|
1807 |
ΣΆΜΟΣ σάμος
|
1808 |
σάμος σάμος
|
1809 |
σάμος σάμοσ
|
1810 |
σάμος ΣΆΜΟΣ
|
1811 |
|
1812 |
/(σάμος) \1/i,utf
|
1813 |
ΣΆΜΟΣ ΣΆΜΟΣ
|
1814 |
ΣΆΜΟΣ σάμος
|
1815 |
σάμος σάμος
|
1816 |
σάμος σάμοσ
|
1817 |
σάμος ΣΆΜΟΣ
|
1818 |
|
1819 |
/(ΣΆΜΟΣ) \1*/i,utf
|
1820 |
ΣΆΜΟΣ\x20
|
1821 |
ΣΆΜΟΣ ΣΆΜΟΣσάμοςσάμος
|
1822 |
|
1823 |
# Perl matches these
|
1824 |
|
1825 |
/\x{00b5}+/i,utf
|
1826 |
\x{00b5}\x{039c}\x{03bc}
|
1827 |
|
1828 |
/\x{039c}+/i,utf
|
1829 |
\x{00b5}\x{039c}\x{03bc}
|
1830 |
|
1831 |
/\x{03bc}+/i,utf
|
1832 |
\x{00b5}\x{039c}\x{03bc}
|
1833 |
|
1834 |
|
1835 |
/\x{00c5}+/i,utf
|
1836 |
\x{00c5}\x{00e5}\x{212b}
|
1837 |
|
1838 |
/\x{00e5}+/i,utf
|
1839 |
\x{00c5}\x{00e5}\x{212b}
|
1840 |
|
1841 |
/\x{212b}+/i,utf
|
1842 |
\x{00c5}\x{00e5}\x{212b}
|
1843 |
|
1844 |
|
1845 |
/\x{01c4}+/i,utf
|
1846 |
\x{01c4}\x{01c5}\x{01c6}
|
1847 |
|
1848 |
/\x{01c5}+/i,utf
|
1849 |
\x{01c4}\x{01c5}\x{01c6}
|
1850 |
|
1851 |
/\x{01c6}+/i,utf
|
1852 |
\x{01c4}\x{01c5}\x{01c6}
|
1853 |
|
1854 |
|
1855 |
/\x{01c7}+/i,utf
|
1856 |
\x{01c7}\x{01c8}\x{01c9}
|
1857 |
|
1858 |
/\x{01c8}+/i,utf
|
1859 |
\x{01c7}\x{01c8}\x{01c9}
|
1860 |
|
1861 |
/\x{01c9}+/i,utf
|
1862 |
\x{01c7}\x{01c8}\x{01c9}
|
1863 |
|
1864 |
|
1865 |
/\x{01ca}+/i,utf
|
1866 |
\x{01ca}\x{01cb}\x{01cc}
|
1867 |
|
1868 |
/\x{01cb}+/i,utf
|
1869 |
\x{01ca}\x{01cb}\x{01cc}
|
1870 |
|
1871 |
/\x{01cc}+/i,utf
|
1872 |
\x{01ca}\x{01cb}\x{01cc}
|
1873 |
|
1874 |
|
1875 |
/\x{01f1}+/i,utf
|
1876 |
\x{01f1}\x{01f2}\x{01f3}
|
1877 |
|
1878 |
/\x{01f2}+/i,utf
|
1879 |
\x{01f1}\x{01f2}\x{01f3}
|
1880 |
|
1881 |
/\x{01f3}+/i,utf
|
1882 |
\x{01f1}\x{01f2}\x{01f3}
|
1883 |
|
1884 |
|
1885 |
/\x{0345}+/i,utf
|
1886 |
\x{0345}\x{0399}\x{03b9}\x{1fbe}
|
1887 |
|
1888 |
/\x{0399}+/i,utf
|
1889 |
\x{0345}\x{0399}\x{03b9}\x{1fbe}
|
1890 |
|
1891 |
/\x{03b9}+/i,utf
|
1892 |
\x{0345}\x{0399}\x{03b9}\x{1fbe}
|
1893 |
|
1894 |
/\x{1fbe}+/i,utf
|
1895 |
\x{0345}\x{0399}\x{03b9}\x{1fbe}
|
1896 |
|
1897 |
|
1898 |
/\x{0392}+/i,utf
|
1899 |
\x{0392}\x{03b2}\x{03d0}
|
1900 |
|
1901 |
/\x{03b2}+/i,utf
|
1902 |
\x{0392}\x{03b2}\x{03d0}
|
1903 |
|
1904 |
/\x{03d0}+/i,utf
|
1905 |
\x{0392}\x{03b2}\x{03d0}
|
1906 |
|
1907 |
|
1908 |
/\x{0395}+/i,utf
|
1909 |
\x{0395}\x{03b5}\x{03f5}
|
1910 |
|
1911 |
/\x{03b5}+/i,utf
|
1912 |
\x{0395}\x{03b5}\x{03f5}
|
1913 |
|
1914 |
/\x{03f5}+/i,utf
|
1915 |
\x{0395}\x{03b5}\x{03f5}
|
1916 |
|
1917 |
|
1918 |
/\x{0398}+/i,utf
|
1919 |
\x{0398}\x{03b8}\x{03d1}\x{03f4}
|
1920 |
|
1921 |
/\x{03b8}+/i,utf
|
1922 |
\x{0398}\x{03b8}\x{03d1}\x{03f4}
|
1923 |
|
1924 |
/\x{03d1}+/i,utf
|
1925 |
\x{0398}\x{03b8}\x{03d1}\x{03f4}
|
1926 |
|
1927 |
/\x{03f4}+/i,utf
|
1928 |
\x{0398}\x{03b8}\x{03d1}\x{03f4}
|
1929 |
|
1930 |
|
1931 |
/\x{039a}+/i,utf
|
1932 |
\x{039a}\x{03ba}\x{03f0}
|
1933 |
|
1934 |
/\x{03ba}+/i,utf
|
1935 |
\x{039a}\x{03ba}\x{03f0}
|
1936 |
|
1937 |
/\x{03f0}+/i,utf
|
1938 |
\x{039a}\x{03ba}\x{03f0}
|
1939 |
|
1940 |
|
1941 |
/\x{03a0}+/i,utf
|
1942 |
\x{03a0}\x{03c0}\x{03d6}
|
1943 |
|
1944 |
/\x{03c0}+/i,utf
|
1945 |
\x{03a0}\x{03c0}\x{03d6}
|
1946 |
|
1947 |
/\x{03d6}+/i,utf
|
1948 |
\x{03a0}\x{03c0}\x{03d6}
|
1949 |
|
1950 |
|
1951 |
/\x{03a1}+/i,utf
|
1952 |
\x{03a1}\x{03c1}\x{03f1}
|
1953 |
|
1954 |
/\x{03c1}+/i,utf
|
1955 |
\x{03a1}\x{03c1}\x{03f1}
|
1956 |
|
1957 |
/\x{03f1}+/i,utf
|
1958 |
\x{03a1}\x{03c1}\x{03f1}
|
1959 |
|
1960 |
|
1961 |
/\x{03a3}+/i,utf
|
1962 |
\x{03A3}\x{03C2}\x{03C3}
|
1963 |
|
1964 |
/\x{03c2}+/i,utf
|
1965 |
\x{03A3}\x{03C2}\x{03C3}
|
1966 |
|
1967 |
/\x{03c3}+/i,utf
|
1968 |
\x{03A3}\x{03C2}\x{03C3}
|
1969 |
|
1970 |
|
1971 |
/\x{03a6}+/i,utf
|
1972 |
\x{03a6}\x{03c6}\x{03d5}
|
1973 |
|
1974 |
/\x{03c6}+/i,utf
|
1975 |
\x{03a6}\x{03c6}\x{03d5}
|
1976 |
|
1977 |
/\x{03d5}+/i,utf
|
1978 |
\x{03a6}\x{03c6}\x{03d5}
|
1979 |
|
1980 |
|
1981 |
/\x{03c9}+/i,utf
|
1982 |
\x{03c9}\x{03a9}\x{2126}
|
1983 |
|
1984 |
/\x{03a9}+/i,utf
|
1985 |
\x{03c9}\x{03a9}\x{2126}
|
1986 |
|
1987 |
/\x{2126}+/i,utf
|
1988 |
\x{03c9}\x{03a9}\x{2126}
|
1989 |
|
1990 |
|
1991 |
/\x{1e60}+/i,utf
|
1992 |
\x{1e60}\x{1e61}\x{1e9b}
|
1993 |
|
1994 |
/\x{1e61}+/i,utf
|
1995 |
\x{1e60}\x{1e61}\x{1e9b}
|
1996 |
|
1997 |
/\x{1e9b}+/i,utf
|
1998 |
\x{1e60}\x{1e61}\x{1e9b}
|
1999 |
|
2000 |
|
2001 |
/\x{1e9e}+/i,utf
|
2002 |
\x{1e9e}\x{00df}
|
2003 |
|
2004 |
/\x{00df}+/i,utf
|
2005 |
\x{1e9e}\x{00df}
|
2006 |
|
2007 |
|
2008 |
/\x{1f88}+/i,utf
|
2009 |
\x{1f88}\x{1f80}
|
2010 |
|
2011 |
/\x{1f80}+/i,utf
|
2012 |
\x{1f88}\x{1f80}
|
2013 |
|
2014 |
# Perl 5.12.4 gets these wrong, but 5.15.3 is OK
|
2015 |
|
2016 |
/\x{004b}+/i,utf
|
2017 |
\x{004b}\x{006b}\x{212a}
|
2018 |
|
2019 |
/\x{006b}+/i,utf
|
2020 |
\x{004b}\x{006b}\x{212a}
|
2021 |
|
2022 |
/\x{212a}+/i,utf
|
2023 |
\x{004b}\x{006b}\x{212a}
|
2024 |
|
2025 |
|
2026 |
/\x{0053}+/i,utf
|
2027 |
\x{0053}\x{0073}\x{017f}
|
2028 |
|
2029 |
/\x{0073}+/i,utf
|
2030 |
\x{0053}\x{0073}\x{017f}
|
2031 |
|
2032 |
/\x{017f}+/i,utf
|
2033 |
\x{0053}\x{0073}\x{017f}
|
2034 |
|
2035 |
/^\p{Any}*\d{4}/utf
|
2036 |
1234
|
2037 |
\= Expect no match
|
2038 |
123
|
2039 |
|
2040 |
/^\X*\w{4}/utf
|
2041 |
1234
|
2042 |
\= Expect no match
|
2043 |
123
|
2044 |
|
2045 |
/^A\s+Z/utf,ucp
|
2046 |
A\x{2005}Z
|
2047 |
A\x{85}\x{2005}Z
|
2048 |
|
2049 |
/^A[\s]+Z/utf,ucp
|
2050 |
A\x{2005}Z
|
2051 |
A\x{85}\x{2005}Z
|
2052 |
|
2053 |
/^[[:graph:]]+$/utf,ucp
|
2054 |
Letter:ABC
|
2055 |
Mark:\x{300}\x{1d172}\x{1d17b}
|
2056 |
Number:9\x{660}
|
2057 |
Punctuation:\x{66a},;
|
2058 |
Symbol:\x{6de}<>\x{fffc}
|
2059 |
Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
|
2060 |
\x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
|
2061 |
\x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
|
2062 |
\x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
|
2063 |
\x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
|
2064 |
\x{feff}
|
2065 |
\x{fff9}\x{fffa}\x{fffb}
|
2066 |
\x{110bd}
|
2067 |
\x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
|
2068 |
\x{e0001}
|
2069 |
\x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
|
2070 |
\= Expect no match
|
2071 |
\x{09}
|
2072 |
\x{0a}
|
2073 |
\x{1D}
|
2074 |
\x{20}
|
2075 |
\x{85}
|
2076 |
\x{a0}
|
2077 |
\x{1680}
|
2078 |
\x{2028}
|
2079 |
\x{2029}
|
2080 |
\x{202f}
|
2081 |
\x{2065}
|
2082 |
\x{3000}
|
2083 |
\x{e0002}
|
2084 |
\x{e001f}
|
2085 |
\x{e0080}
|
2086 |
|
2087 |
/^[[:print:]]+$/utf,ucp
|
2088 |
Space: \x{a0}
|
2089 |
\x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
|
2090 |
\x{2006}\x{2007}\x{2008}\x{2009}\x{200a}
|
2091 |
\x{202f}\x{205f}
|
2092 |
\x{3000}
|
2093 |
Letter:ABC
|
2094 |
Mark:\x{300}\x{1d172}\x{1d17b}
|
2095 |
Number:9\x{660}
|
2096 |
Punctuation:\x{66a},;
|
2097 |
Symbol:\x{6de}<>\x{fffc}
|
2098 |
Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
|
2099 |
\x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
|
2100 |
\x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
|
2101 |
\x{202f}
|
2102 |
\x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
|
2103 |
\x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
|
2104 |
\x{feff}
|
2105 |
\x{fff9}\x{fffa}\x{fffb}
|
2106 |
\x{110bd}
|
2107 |
\x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
|
2108 |
\x{e0001}
|
2109 |
\x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
|
2110 |
\= Expect no match
|
2111 |
\x{09}
|
2112 |
\x{1D}
|
2113 |
\x{85}
|
2114 |
\x{2028}
|
2115 |
\x{2029}
|
2116 |
\x{2065}
|
2117 |
\x{e0002}
|
2118 |
\x{e001f}
|
2119 |
\x{e0080}
|
2120 |
|
2121 |
/^[[:punct:]]+$/utf,ucp
|
2122 |
\$+<=>^`|~
|
2123 |
!\"#%&'()*,-./:;?@[\\]_{}
|
2124 |
\x{a1}\x{a7}
|
2125 |
\x{37e}
|
2126 |
\= Expect no match
|
2127 |
abcde
|
2128 |
|
2129 |
/^[[:^graph:]]+$/utf,ucp
|
2130 |
\x{09}\x{0a}\x{1D}\x{20}\x{85}\x{a0}\x{1680}
|
2131 |
\x{2028}\x{2029}\x{202f}\x{2065}
|
2132 |
\x{3000}\x{e0002}\x{e001f}\x{e0080}
|
2133 |
\= Expect no match
|
2134 |
Letter:ABC
|
2135 |
Mark:\x{300}\x{1d172}\x{1d17b}
|
2136 |
Number:9\x{660}
|
2137 |
Punctuation:\x{66a},;
|
2138 |
Symbol:\x{6de}<>\x{fffc}
|
2139 |
Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
|
2140 |
\x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
|
2141 |
\x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
|
2142 |
\x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
|
2143 |
\x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
|
2144 |
\x{feff}
|
2145 |
\x{fff9}\x{fffa}\x{fffb}
|
2146 |
\x{110bd}
|
2147 |
\x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
|
2148 |
\x{e0001}
|
2149 |
\x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
|
2150 |
|
2151 |
/^[[:^print:]]+$/utf,ucp
|
2152 |
\x{09}\x{1D}\x{85}\x{2028}\x{2029}\x{2065}
|
2153 |
\x{e0002}\x{e001f}\x{e0080}
|
2154 |
\= Expect no match
|
2155 |
Space: \x{a0}
|
2156 |
\x{1680}\x{2000}\x{2001}\x{2002}\x{2003}\x{2004}\x{2005}
|
2157 |
\x{2006}\x{2007}\x{2008}\x{2009}\x{200a}
|
2158 |
\x{202f}\x{205f}
|
2159 |
\x{3000}
|
2160 |
Letter:ABC
|
2161 |
Mark:\x{300}\x{1d172}\x{1d17b}
|
2162 |
Number:9\x{660}
|
2163 |
Punctuation:\x{66a},;
|
2164 |
Symbol:\x{6de}<>\x{fffc}
|
2165 |
Cf-property:\x{ad}\x{600}\x{601}\x{602}\x{603}\x{604}\x{6dd}\x{70f}
|
2166 |
\x{200b}\x{200c}\x{200d}\x{200e}\x{200f}
|
2167 |
\x{202a}\x{202b}\x{202c}\x{202d}\x{202e}
|
2168 |
\x{202f}
|
2169 |
\x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
|
2170 |
\x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
|
2171 |
\x{feff}
|
2172 |
\x{fff9}\x{fffa}\x{fffb}
|
2173 |
\x{110bd}
|
2174 |
\x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
|
2175 |
\x{e0001}
|
2176 |
\x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
|
2177 |
|
2178 |
/^[[:^punct:]]+$/utf,ucp
|
2179 |
abcde
|
2180 |
\= Expect no match
|
2181 |
\$+<=>^`|~
|
2182 |
!\"#%&'()*,-./:;?@[\\]_{}
|
2183 |
\x{a1}\x{a7}
|
2184 |
\x{37e}
|
2185 |
|
2186 |
/[RST]+/i,utf,ucp
|
2187 |
Ss\x{17f}
|
2188 |
|
2189 |
/[R-T]+/i,utf,ucp
|
2190 |
Ss\x{17f}
|
2191 |
|
2192 |
/[q-u]+/i,utf,ucp
|
2193 |
Ss\x{17f}
|
2194 |
|
2195 |
/^s?c/im,utf
|
2196 |
scat
|
2197 |
|
2198 |
# The next four tests are for repeated caseless back references when the
|
2199 |
# code unit length of the matched text is different to that of the original
|
2200 |
# group in the UTF-8 case.
|
2201 |
|
2202 |
/^(\x{23a})\1*(.)/i,utf
|
2203 |
\x{23a}\x{23a}\x{23a}\x{23a}
|
2204 |
\x{23a}\x{2c65}\x{2c65}\x{2c65}
|
2205 |
\x{23a}\x{23a}\x{2c65}\x{23a}
|
2206 |
|
2207 |
/^(\x{23a})\1*(..)/i,utf
|
2208 |
\x{23a}\x{2c65}\x{2c65}\x{2c65}
|
2209 |
\x{23a}\x{23a}\x{2c65}\x{23a}
|
2210 |
|
2211 |
/^(\x{23a})\1*(...)/i,utf
|
2212 |
\x{23a}\x{2c65}\x{2c65}\x{2c65}
|
2213 |
\x{23a}\x{23a}\x{2c65}\x{23a}
|
2214 |
|
2215 |
/^(\x{23a})\1*(....)/i,utf
|
2216 |
\= Expect no match
|
2217 |
\x{23a}\x{2c65}\x{2c65}\x{2c65}
|
2218 |
\x{23a}\x{23a}\x{2c65}\x{23a}
|
2219 |
|
2220 |
/[A-`]/i,utf
|
2221 |
abcdefghijklmno
|
2222 |
|
2223 |
"[\S\V\H]"utf
|
2224 |
|
2225 |
/[^\p{Any}]*+x/utf
|
2226 |
x
|
2227 |
|
2228 |
/[[:punct:]]/utf,ucp
|
2229 |
\x{b4}
|
2230 |
|
2231 |
/[[:^ascii:]]/utf,ucp
|
2232 |
\x{100}
|
2233 |
\x{200}
|
2234 |
\x{300}
|
2235 |
\x{37e}
|
2236 |
\= Expect no match
|
2237 |
aa
|
2238 |
99
|
2239 |
|
2240 |
/[[:^ascii:]\w]/utf,ucp
|
2241 |
aa
|
2242 |
99
|
2243 |
gg
|
2244 |
\x{100}
|
2245 |
\x{200}
|
2246 |
\x{300}
|
2247 |
\x{37e}
|
2248 |
|
2249 |
/[\w[:^ascii:]]/utf,ucp
|
2250 |
aa
|
2251 |
99
|
2252 |
gg
|
2253 |
\x{100}
|
2254 |
\x{200}
|
2255 |
\x{300}
|
2256 |
\x{37e}
|
2257 |
|
2258 |
/[^[:ascii:]\W]/utf,ucp
|
2259 |
\x{100}
|
2260 |
\x{200}
|
2261 |
\= Expect no match
|
2262 |
aa
|
2263 |
99
|
2264 |
gg
|
2265 |
\x{37e}
|
2266 |
|
2267 |
/[^[:^ascii:]\d]/utf,ucp
|
2268 |
a
|
2269 |
~
|
2270 |
\a
|
2271 |
\x{7f}
|
2272 |
\= Expect no match
|
2273 |
0
|
2274 |
\x{389}
|
2275 |
\x{20ac}
|
2276 |
|
2277 |
/(?=.*b)\pL/
|
2278 |
11bb
|
2279 |
|
2280 |
/(?(?=.*b)(?=.*b)\pL|.*c)/
|
2281 |
11bb
|
2282 |
|
2283 |
/^\x{123}+?$/utf,no_auto_possess
|
2284 |
\x{123}\x{123}\x{123}
|
2285 |
|
2286 |
/^\x{123}+?$/i,utf,no_auto_possess
|
2287 |
\x{123}\x{122}\x{123}
|
2288 |
\= Expect no match
|
2289 |
\x{123}\x{124}\x{123}
|
2290 |
|
2291 |
/\N{U+1234}/utf
|
2292 |
\x{1234}
|
2293 |
|
2294 |
/[\N{U+1234}]/utf
|
2295 |
\x{1234}
|
2296 |
|
2297 |
# Test the full list of Unicode "Pattern White Space" characters that are to
|
2298 |
# be ignored by /x. The pattern lines below may show up oddly in text editors
|
2299 |
# or when listed to the screen. Note that characters such as U+2002, which are
|
2300 |
# matched as space by \h and \v are *not* "Pattern White Space".
|
2301 |
|
2302 |
/A
B/x,utf
|
2303 |
AB
|
2304 |
|
2305 |
/A B/x,utf
|
2306 |
A\x{2002}B
|
2307 |
\= Expect no match
|
2308 |
AB
|
2309 |
|
2310 |
# -------
|
2311 |
|
2312 |
/[^\x{100}-\x{ffff}]*[\x80-\xff]/utf
|
2313 |
\x{99}\x{99}\x{99}
|
2314 |
|
2315 |
/[^\x{100}-\x{ffff}ABC]*[\x80-\xff]/utf
|
2316 |
\x{99}\x{99}\x{99}
|
2317 |
|
2318 |
/[^\x{100}-\x{ffff}]*[\x80-\xff]/i,utf
|
2319 |
\x{99}\x{99}\x{99}
|
2320 |
|
2321 |
# Script run tests
|
2322 |
|
2323 |
/^(*script_run:.{4})/utf
|
2324 |
abcd Latin x4
|
2325 |
\x{2e80}\x{2fa1d}\x{3041}\x{30a1} Han Han Hiragana Katakana
|
2326 |
\x{3041}\x{30a1}\x{3007}\x{3007} Hiragana Katakana Han Han
|
2327 |
\x{30a1}\x{3041}\x{3007}\x{3007} Katakana Hiragana Han Han
|
2328 |
\x{1100}\x{2e80}\x{2e80}\x{1101} Hangul Han Han Hangul
|
2329 |
\x{2e80}\x{3105}\x{2e80}\x{3105} Han Bopomofo Han Bopomofo
|
2330 |
\x{02ea}\x{2e80}\x{2e80}\x{3105} Bopomofo-Sk Han Han Bopomofo
|
2331 |
\x{3105}\x{2e80}\x{2e80}\x{3105} Bopomofo Han Han Bopomofo
|
2332 |
\x{0300}cd! Inherited Latin Latin Common
|
2333 |
\x{0391}12\x{03a9} Greek Common-digits Greek
|
2334 |
\x{0400}12\x{fe2f} Cyrillic Common-digits Cyrillic
|
2335 |
\x{0531}12\x{fb17} Armenian Common-digits Armenian
|
2336 |
\x{0591}12\x{fb4f} Hebrew Common-digits Hebrew
|
2337 |
\x{0600}12\x{1eef1} Arabic Common-digits Arabic
|
2338 |
\x{0600}\x{0660}\x{0669}\x{1eef1} Arabic Arabic-digits Arabic
|
2339 |
\x{0700}12\x{086a} Syriac Common-digits Syriac
|
2340 |
\x{1200}12\x{ab2e} Ethiopic Common-digits Ethiopic
|
2341 |
\x{1680}12\x{169c} Ogham Common-digits Ogham
|
2342 |
\x{3041}12\x{3041} Hiragana Common-digits Hiragana
|
2343 |
\x{0980}\x{09e6}\x{09e7}\x{0993} Bengali Bengali-digits Bengali
|
2344 |
!cde Common Latin Latin Latin
|
2345 |
A..B Latin Common Common Latin
|
2346 |
0abc Ascii-digit Latin Latin Latin
|
2347 |
1\x{0700}\x{0700}\x{0700} Ascii-digit Syriac x 3
|
2348 |
\x{1A80}\x{1A80}\x{1a40}\x{1a41} Tai Tham Hora digits, letters
|
2349 |
\= Expect no match
|
2350 |
a\x{370}bcd Latin Greek Latin Latin
|
2351 |
\x{1100}\x{02ea}\x{02ea}\x{02ea} Hangul Bopomofo x3
|
2352 |
\x{02ea}\x{02ea}\x{02ea}\x{1100} Bopomofo x3 Hangul
|
2353 |
\x{1100}\x{2e80}\x{3041}\x{1101} Hangul Han Hiragana Hangul
|
2354 |
\x{0391}\x{09e6}\x{09e7}\x{03a9} Greek Bengali digits Greek
|
2355 |
\x{0600}7\x{0669}\x{1eef1} Arabic ascii-digit Arabic-digit Arabic
|
2356 |
\x{0600}\x{0669}7\x{1eef1} Arabic Arabic-digit ascii-digit Arabic
|
2357 |
A5\x{ff19}B Latin Common-ascii/notascii-digits Latin
|
2358 |
\x{0300}cd\x{0391} Inherited Latin Latin Greek
|
2359 |
!cd\x{0391} Common Latin Latin Greek
|
2360 |
\x{1A80}\x{1A90}\x{1a40}\x{1a41} Tai Tham Hora digit, Tham digit, letters
|
2361 |
A\x{1d7ce}\x{1d7ff}B Common fancy-common-2-sets-digits Common
|
2362 |
\x{2e80}\x{3105}\x{2e80}\x{30a1} Han Bopomofo Han Katakana
|
2363 |
|
2364 |
/^(*sr:.{4}|..)/utf
|
2365 |
\x{2e80}\x{3105}\x{2e80}\x{30a1} Han Bopomofo Han Katakana
|
2366 |
|
2367 |
/^(*atomic_script_run:.{4}|..)/utf
|
2368 |
\= Expect no match
|
2369 |
\x{2e80}\x{3105}\x{2e80}\x{30a1} Han Bopomofo Han Katakana
|
2370 |
|
2371 |
/^(*asr:.*)/utf
|
2372 |
\= Expect no match
|
2373 |
\x{2e80}\x{3105}\x{2e80}\x{30a1} Han Bopomofo Han Katakana
|
2374 |
|
2375 |
/^(?>(*sr:.*))/utf
|
2376 |
\x{2e80}\x{3105}\x{2e80}\x{30a1} Han Bopomofo Han Katakana
|
2377 |
|
2378 |
/^(*sr:.*)/utf
|
2379 |
\x{2e80}\x{3105}\x{2e80}\x{30a1} Han Bopomofo Han Katakana
|
2380 |
\x{10fffd}\x{10fffd}\x{10fffd} Private use (Unknown)
|
2381 |
|
2382 |
/^(*sr:\x{2e80}*)/utf
|
2383 |
\x{2e80}\x{2e80}\x{3105} Han Han Bopomofo
|
2384 |
|
2385 |
/^(*sr:\x{2e80}*)\x{2e80}/utf
|
2386 |
\x{2e80}\x{2e80}\x{3105} Han Han Bopomofo
|
2387 |
|
2388 |
/^(*sr:.*)Test/utf
|
2389 |
Test script run on an empty string
|
2390 |
|
2391 |
/^(*sr:(.{2})){2}/utf
|
2392 |
\x{0600}7\x{0669}\x{1eef1} Arabic ascii-digit Arabic-digit Arabic
|
2393 |
\x{1A80}\x{1A80}\x{1a40}\x{1a41} Tai Tham Hora digits, letters
|
2394 |
\x{1A80}\x{1a40}\x{1A90}\x{1a41} Tai Tham Hora digit, letter, Tham digit, letter
|
2395 |
\= Expect no match
|
2396 |
\x{1100}\x{2e80}\x{3041}\x{1101} Hangul Han Hiragana Hangul
|
2397 |
|
2398 |
/^(*sr:\S*)/utf
|
2399 |
\x{1cf4}\x{20f0}\x{900}\x{11305} [Dev,Gran,Kan] [Dev,Gran,Lat] Dev Gran
|
2400 |
\x{1cf4}\x{20f0}\x{11305}\x{900} [Dev,Gran,Kan] [Dev,Gran,Lat] Gran Dev
|
2401 |
\x{1cf4}\x{20f0}\x{900}ABC [Dev,Gran,Kan] [Dev,Gran,Lat] Dev Lat
|
2402 |
\x{1cf4}\x{20f0}ABC [Dev,Gran,Kan] [Dev,Gran,Lat] Lat
|
2403 |
\x{20f0}ABC [Dev,Gran,Lat] Lat
|
2404 |
XYZ\x{20f0}ABC Lat [Dev,Gran,Lat] Lat
|
2405 |
\x{a36}\x{a33}\x{900} [Dev,...] [Dev,...] Dev
|
2406 |
\x{3001}\x{2e80}\x{3041}\x{30a1} [Bopo, Han, etc] Han Hira Kata
|
2407 |
\x{3001}\x{30a1}\x{2e80}\x{3041} [Bopo, Han, etc] Kata Han Hira
|
2408 |
\x{3001}\x{3105}\x{2e80}\x{1101} [Bopo, Han, etc] Bopomofo Han Hangul
|
2409 |
\x{3105}\x{3001}\x{2e80}\x{1101} Bopomofo [Bopo, Han, etc] Han Hangul
|
2410 |
\x{3031}\x{3041}\x{30a1}\x{2e80} [Hira Kata] Hira Kata Han
|
2411 |
\x{060c}\x{06d4}\x{0600}\x{10d00}\x{0700} [Arab Rohg Syrc Thaa] [Arab Rohg] Arab Rohg Syrc
|
2412 |
\x{060c}\x{06d4}\x{0700}\x{0600}\x{10d00} [Arab Rohg Syrc Thaa] [Arab Rohg] Syrc Arab Rohg
|
2413 |
\x{2e80}\x{3041}\x{3001}\x{3031}\x{2e80} Han Hira [Bopo, Han, etc] [Hira Kata] Han
|
2414 |
|
2415 |
/(?<!)(*sr:)/
|
2416 |
|
2417 |
/(?<!X(*sr:B)C)/
|
2418 |
|
2419 |
/(?<=abc(?=X(*sr:BCY)Z)XBCYZ)./
|
2420 |
abcXBCYZ!
|
2421 |
|
2422 |
/(?<=abc(?=X(*sr:BXY)CCC)XBXYCCC)./
|
2423 |
abcXBXYCCC!
|
2424 |
|
2425 |
/^(*sr:\S*)/utf
|
2426 |
\x{10d00}\x{10d00}\x{06d4} Rohingya Rohingya Arabic-full-stop
|
2427 |
\x{06d4}\x{10d00}\x{10d00} Arabic-full-stop Rohingya Rohingya
|
2428 |
\x{10d00}\x{10d00}\x{0363} Rohingya Rohingya Inherited-extend-Latin
|
2429 |
\x{0363}\x{10d00}\x{10d00} Inherited-extend-Latin Rohingya Rohingya
|
2430 |
AB\x{0363} Latin Latin Inherited-extend-Latin
|
2431 |
\x{0363}AB Inherited-extend-Latin Latin Latin
|
2432 |
AB\x{1cf7} Latin Latin Common-extended-Beng
|
2433 |
\x{1cf7}AB Common-extend-Beng Latin Latin
|
2434 |
\x{1cf7}\x{0993} Common-extend-Beng Bengali
|
2435 |
A\x{1abe}BC Test enclosing mark
|
2436 |
\x{0370}\x{1abe}\x{0371} Which can occur with any script (Greek here)
|
2437 |
\x{3001}\x{adf9}\x{3001} [.. Hangul ..] Hangul [.. Hangul ..]
|
2438 |
\x{3400}\x{3001}XXX Han [Han etc.]
|
2439 |
\x{3400}\x{1cd5} Han [Bengali Devanagari]
|
2440 |
\x{ac01}\x{3400} Hangul [.. Hangul ..]
|
2441 |
\x{ac01}\x{1cd5} Hangul [Bengali Devanagari]
|
2442 |
\x{102e0}\x{06d4}\x{1ee4d} [Arabic Coptic] [Arab Rohingya] Arabic
|
2443 |
\x{102e0}\x{06d4}\x{2cc9} [Arabic Coptic] [Arab Rohingya] Coptic
|
2444 |
\x{102e0}\x{06d4}\x{10d30} [Arabic Coptic] [Arab Rohingya] Rohingya
|
2445 |
|
2446 |
# Test loop breaking for empty string match
|
2447 |
|
2448 |
/^(*sr:A|)*BCD/utf
|
2449 |
AABCD
|
2450 |
ABCD
|
2451 |
BCD
|
2452 |
|
2453 |
# The use of (*ACCEPT) breaks script run checking
|
2454 |
|
2455 |
/^(*sr:.*(*ACCEPT)ZZ)/utf
|
2456 |
\x{1100}\x{2e80}\x{3041}\x{1101} Hangul Han Hiragana Hangul
|
2457 |
|
2458 |
# -------
|
2459 |
|
2460 |
# Test group names containing non-ASCII letters and digits
|
2461 |
|
2462 |
/(?'ABáC'...)\g{ABáC}/utf
|
2463 |
abcabcdefg
|
2464 |
|
2465 |
/(?'XʰABC'...)/utf
|
2466 |
xyzpq
|
2467 |
|
2468 |
/(?'XאABC'...)/utf
|
2469 |
12345
|
2470 |
|
2471 |
/(?'XᾈABC'...)/utf
|
2472 |
%^&*(...
|
2473 |
|
2474 |
/(?'𐨐ABC'...)/utf
|
2475 |
abcde
|
2476 |
|
2477 |
/^(?'אABC'...)(?&אABC)(?P=אABC)/utf
|
2478 |
123123123456
|
2479 |
|
2480 |
/^(?'אABC'...)(?&אABC)/utf
|
2481 |
123123123456
|
2482 |
|
2483 |
/\X*/
|
2484 |
\xF3aaa\xE4\xEA\xEB\xFEa
|
2485 |
|
2486 |
# End of testinput4
|