• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/-- This set of tests checks the API, internals, and non-Perl stuff for UTF-8
2    support, excluding Unicode properties. --/
3
4/\x{100}/8DZ
5
6/\x{1000}/8DZ
7
8/\x{10000}/8DZ
9
10/\x{100000}/8DZ
11
12/\x{1000000}/8DZ
13
14/\x{4000000}/8DZ
15
16/\x{7fffFFFF}/8DZ
17
18/[\x{ff}]/8DZ
19
20/[\x{100}]/8DZ
21
22/\x{ffffffff}/8
23
24/\x{100000000}/8
25
26/^\x{100}a\x{1234}/8
27    \x{100}a\x{1234}bcd
28
29/\x80/8DZ
30
31/\xff/8DZ
32
33/\x{0041}\x{2262}\x{0391}\x{002e}/DZ8
34    \x{0041}\x{2262}\x{0391}\x{002e}
35
36/\x{D55c}\x{ad6d}\x{C5B4}/DZ8
37    \x{D55c}\x{ad6d}\x{C5B4}
38
39/\x{65e5}\x{672c}\x{8a9e}/DZ8
40    \x{65e5}\x{672c}\x{8a9e}
41
42/\x{80}/DZ8
43
44/\x{084}/DZ8
45
46/\x{104}/DZ8
47
48/\x{861}/DZ8
49
50/\x{212ab}/DZ8
51
52/.{3,5}X/DZ8
53    \x{212ab}\x{212ab}\x{212ab}\x{861}X
54
55
56/.{3,5}?/DZ8
57    \x{212ab}\x{212ab}\x{212ab}\x{861}
58
59/(?<=\C)X/8
60    Should produce an error diagnostic
61
62/-- This one is here not because it's different to Perl, but because the way
63the captured single-byte is displayed. (In Perl it becomes a character, and you
64can't tell the difference.) --/
65
66/X(\C)(.*)/8
67    X\x{1234}
68    X\nabc
69
70/-- This one is here because Perl gives out a grumbly error message (quite
71correctly, but that messes up comparisons). --/
72
73/a\Cb/8
74    *** Failers
75    a\x{100}b
76
77/^[ab]/8DZ
78    bar
79    *** Failers
80    c
81    \x{ff}
82    \x{100}
83
84/^[^ab]/8DZ
85    c
86    \x{ff}
87    \x{100}
88    *** Failers
89    aaa
90
91/[^ab\xC0-\xF0]/8SDZ
92    \x{f1}
93    \x{bf}
94    \x{100}
95    \x{1000}
96    *** Failers
97    \x{c0}
98    \x{f0}
99
100/Ā{3,4}/8SDZ
101  \x{100}\x{100}\x{100}\x{100\x{100}
102
103/(\x{100}+|x)/8SDZ
104
105/(\x{100}*a|x)/8SDZ
106
107/(\x{100}{0,2}a|x)/8SDZ
108
109/(\x{100}{1,2}a|x)/8SDZ
110
111/\x{100}*(\d+|"(?1)")/8
112    1234
113    "1234"
114    \x{100}1234
115    "\x{100}1234"
116    \x{100}\x{100}12ab
117    \x{100}\x{100}"12"
118    *** Failers
119    \x{100}\x{100}abcd
120
121/\x{100}/8DZ
122
123/\x{100}*/8DZ
124
125/a\x{100}*/8DZ
126
127/ab\x{100}*/8DZ
128
129/a\x{100}\x{101}*/8DZ
130
131/a\x{100}\x{101}+/8DZ
132
133/\x{100}*A/8DZ
134    A
135
136/\x{100}*\d(?R)/8DZ
137
138/[^\x{c4}]/DZ
139
140/[^\x{c4}]/8DZ
141
142/[\x{100}]/8DZ
143    \x{100}
144    Z\x{100}
145    \x{100}Z
146    *** Failers
147
148/[Z\x{100}]/8DZ
149    Z\x{100}
150    \x{100}
151    \x{100}Z
152    *** Failers
153
154/[\x{200}-\x{100}]/8
155
156/[Ā-Ą]/8
157    \x{100}
158    \x{104}
159    *** Failers
160    \x{105}
161    \x{ff}
162
163/[z-\x{100}]/8DZ
164
165/[z\Qa-d]Ā\E]/8DZ
166    \x{100}
167    Ā
168
169/[\xFF]/DZ
170    >\xff<
171
172/[\xff]/DZ8
173    >\x{ff}<
174
175/[^\xFF]/DZ
176
177/[^\xff]/8DZ
178
179/[Ä-Ü]/8
180    Ö # Matches without Study
181    \x{d6}
182
183/[Ä-Ü]/8S
184    Ö <-- Same with Study
185    \x{d6}
186
187/[\x{c4}-\x{dc}]/8
188    Ö # Matches without Study
189    \x{d6}
190
191/[\x{c4}-\x{dc}]/8S
192    Ö <-- Same with Study
193    \x{d6}
194
195/[�]/8
196
197/�/8
198
199/���xxx/8
200
201/���xxx/8?DZ
202
203/abc/8
204    �]
205206    ���
207    ���\?
208    \xe1\x88
209    \P\xe1\x88
210    \P\P\xe1\x88
211
212/anything/8
213    \xc0\x80
214    \xc1\x8f
215    \xe0\x9f\x80
216    \xf0\x8f\x80\x80
217    \xf8\x87\x80\x80\x80
218    \xfc\x83\x80\x80\x80\x80
219    \xfe\x80\x80\x80\x80\x80
220    \xff\x80\x80\x80\x80\x80
221    \xc3\x8f
222    \xe0\xaf\x80
223    \xe1\x80\x80
224    \xf0\x9f\x80\x80
225    \xf1\x8f\x80\x80
226    \xf8\x88\x80\x80\x80
227    \xf9\x87\x80\x80\x80
228    \xfc\x84\x80\x80\x80\x80
229    \xfd\x83\x80\x80\x80\x80
230    \?\xf8\x88\x80\x80\x80
231    \?\xf9\x87\x80\x80\x80
232    \?\xfc\x84\x80\x80\x80\x80
233    \?\xfd\x83\x80\x80\x80\x80
234
235/\x{100}abc(xyz(?1))/8DZ
236
237/[^\x{100}]abc(xyz(?1))/8DZ
238
239/[ab\x{100}]abc(xyz(?1))/8DZ
240
241/(\x{100}(b(?2)c))?/DZ8
242
243/(\x{100}(b(?2)c)){0,2}/DZ8
244
245/(\x{100}(b(?1)c))?/DZ8
246
247/(\x{100}(b(?1)c)){0,2}/DZ8
248
249/\W/8
250    A.B
251    A\x{100}B
252
253/\w/8
254    \x{100}X
255
256/a\x{1234}b/P8
257    a\x{1234}b
258
259/^\ሴ/8DZ
260
261/\777/I
262
263/\777/8I
264  \x{1ff}
265  \777
266
267/\x{100}*\d/8DZ
268
269/\x{100}*\s/8DZ
270
271/\x{100}*\w/8DZ
272
273/\x{100}*\D/8DZ
274
275/\x{100}*\S/8DZ
276
277/\x{100}*\W/8DZ
278
279/\x{100}+\x{200}/8DZ
280
281/\x{100}+X/8DZ
282
283/X+\x{200}/8DZ
284
285/()()()()()()()()()()
286 ()()()()()()()()()()
287 ()()()()()()()()()()
288 ()()()()()()()()()()
289 A (x) (?41) B/8x
290    AxxB
291
292/^[\x{100}\E-\Q\E\x{150}]/BZ8
293
294/^[\QĀ\E-\QŐ\E]/BZ8
295
296/^[\QĀ\E-\QŐ\E/BZ8
297
298/^abc./mgx8<any>
299    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
300
301/abc.$/mgx8<any>
302    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
303
304/^a\Rb/8<bsr_unicode>
305    a\nb
306    a\rb
307    a\r\nb
308    a\x0bb
309    a\x0cb
310    a\x{85}b
311    a\x{2028}b
312    a\x{2029}b
313    ** Failers
314    a\n\rb
315
316/^a\R*b/8<bsr_unicode>
317    ab
318    a\nb
319    a\rb
320    a\r\nb
321    a\x0bb
322    a\x0c\x{2028}\x{2029}b
323    a\x{85}b
324    a\n\rb
325    a\n\r\x{85}\x0cb
326
327/^a\R+b/8<bsr_unicode>
328    a\nb
329    a\rb
330    a\r\nb
331    a\x0bb
332    a\x0c\x{2028}\x{2029}b
333    a\x{85}b
334    a\n\rb
335    a\n\r\x{85}\x0cb
336    ** Failers
337    ab
338
339/^a\R{1,3}b/8<bsr_unicode>
340    a\nb
341    a\n\rb
342    a\n\r\x{85}b
343    a\r\n\r\nb
344    a\r\n\r\n\r\nb
345    a\n\r\n\rb
346    a\n\n\r\nb
347    ** Failers
348    a\n\n\n\rb
349    a\r
350
351/\H\h\V\v/8
352    X X\x0a
353    X\x09X\x0b
354    ** Failers
355    \x{a0} X\x0a
356
357/\H*\h+\V?\v{3,4}/8
358    \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
359    \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
360    \x09\x20\x{a0}\x0a\x0b\x0c
361    ** Failers
362    \x09\x20\x{a0}\x0a\x0b
363
364/\H\h\V\v/8
365    \x{3001}\x{3000}\x{2030}\x{2028}
366    X\x{180e}X\x{85}
367    ** Failers
368    \x{2009} X\x0a
369
370/\H*\h+\V?\v{3,4}/8
371    \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
372    \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
373    \x09\x20\x{202f}\x0a\x0b\x0c
374    ** Failers
375    \x09\x{200a}\x{a0}\x{2028}\x0b
376
377/[\h]/8BZ
378    >\x{1680}
379
380/[\h]{3,}/8BZ
381    >\x{1680}\x{180e}\x{2000}\x{2003}\x{200a}\x{202f}\x{205f}\x{3000}<
382
383/[\v]/8BZ
384
385/[\H]/8BZ
386
387/[\V]/8BZ
388
389/.*$/8<any>
390    \x{1ec5}
391
392/-- This tests the stricter UTF-8 check according to RFC 3629. --/
393
394/X/8
395    \x{0}\x{d7ff}\x{e000}\x{10ffff}
396    \x{d800}
397    \x{d800}\?
398    \x{da00}
399    \x{da00}\?
400    \x{dfff}
401    \x{dfff}\?
402    \x{110000}
403    \x{110000}\?
404    \x{2000000}
405    \x{2000000}\?
406    \x{7fffffff}
407    \x{7fffffff}\?
408
409/a\Rb/I8<bsr_anycrlf>
410    a\rb
411    a\nb
412    a\r\nb
413    ** Failers
414    a\x{85}b
415    a\x0bb
416
417/a\Rb/I8<bsr_unicode>
418    a\rb
419    a\nb
420    a\r\nb
421    a\x{85}b
422    a\x0bb
423    ** Failers
424    a\x{85}b\<bsr_anycrlf>
425    a\x0bb\<bsr_anycrlf>
426
427/a\R?b/I8<bsr_anycrlf>
428    a\rb
429    a\nb
430    a\r\nb
431    ** Failers
432    a\x{85}b
433    a\x0bb
434
435/a\R?b/I8<bsr_unicode>
436    a\rb
437    a\nb
438    a\r\nb
439    a\x{85}b
440    a\x0bb
441    ** Failers
442    a\x{85}b\<bsr_anycrlf>
443    a\x0bb\<bsr_anycrlf>
444
445/.*a.*=.b.*/8<ANY>
446    QQQ\x{2029}ABCaXYZ=!bPQR
447    ** Failers
448    a\x{2029}b
449    \x61\xe2\x80\xa9\x62
450
451/[[:a\x{100}b:]]/8
452
453/a[^]b/<JS>8
454    a\x{1234}b
455    a\nb
456    ** Failers
457    ab
458
459/a[^]+b/<JS>8
460    aXb
461    a\nX\nX\x{1234}b
462    ** Failers
463    ab
464
465/(\x{de})\1/
466    \x{de}\x{de}
467    \x{123}
468
469/X/8f<any>
470    A\x{1ec5}ABCXYZ
471
472/(*UTF8)\x{1234}/
473  abcd\x{1234}pqr
474
475/(*CRLF)(*UTF8)(*BSR_UNICODE)a\Rb/I
476
477/Xa{2,4}b/8
478    X\P
479    Xa\P
480    Xaa\P
481    Xaaa\P
482    Xaaaa\P
483
484/Xa{2,4}?b/8
485    X\P
486    Xa\P
487    Xaa\P
488    Xaaa\P
489    Xaaaa\P
490
491/Xa{2,4}+b/8
492    X\P
493    Xa\P
494    Xaa\P
495    Xaaa\P
496    Xaaaa\P
497
498/X\x{123}{2,4}b/8
499    X\P
500    X\x{123}\P
501    X\x{123}\x{123}\P
502    X\x{123}\x{123}\x{123}\P
503    X\x{123}\x{123}\x{123}\x{123}\P
504
505/X\x{123}{2,4}?b/8
506    X\P
507    X\x{123}\P
508    X\x{123}\x{123}\P
509    X\x{123}\x{123}\x{123}\P
510    X\x{123}\x{123}\x{123}\x{123}\P
511
512/X\x{123}{2,4}+b/8
513    X\P
514    X\x{123}\P
515    X\x{123}\x{123}\P
516    X\x{123}\x{123}\x{123}\P
517    X\x{123}\x{123}\x{123}\x{123}\P
518
519/X\x{123}{2,4}b/8
520    Xx\P
521    X\x{123}x\P
522    X\x{123}\x{123}x\P
523    X\x{123}\x{123}\x{123}x\P
524    X\x{123}\x{123}\x{123}\x{123}x\P
525
526/X\x{123}{2,4}?b/8
527    Xx\P
528    X\x{123}x\P
529    X\x{123}\x{123}x\P
530    X\x{123}\x{123}\x{123}x\P
531    X\x{123}\x{123}\x{123}\x{123}x\P
532
533/X\x{123}{2,4}+b/8
534    Xx\P
535    X\x{123}x\P
536    X\x{123}\x{123}x\P
537    X\x{123}\x{123}\x{123}x\P
538    X\x{123}\x{123}\x{123}\x{123}x\P
539
540/X\d{2,4}b/8
541    X\P
542    X3\P
543    X33\P
544    X333\P
545    X3333\P
546
547/X\d{2,4}?b/8
548    X\P
549    X3\P
550    X33\P
551    X333\P
552    X3333\P
553
554/X\d{2,4}+b/8
555    X\P
556    X3\P
557    X33\P
558    X333\P
559    X3333\P
560
561/X\D{2,4}b/8
562    X\P
563    Xa\P
564    Xaa\P
565    Xaaa\P
566    Xaaaa\P
567
568/X\D{2,4}?b/8
569    X\P
570    Xa\P
571    Xaa\P
572    Xaaa\P
573    Xaaaa\P
574
575/X\D{2,4}+b/8
576    X\P
577    Xa\P
578    Xaa\P
579    Xaaa\P
580    Xaaaa\P
581
582/X\D{2,4}b/8
583    X\P
584    X\x{123}\P
585    X\x{123}\x{123}\P
586    X\x{123}\x{123}\x{123}\P
587    X\x{123}\x{123}\x{123}\x{123}\P
588
589/X\D{2,4}?b/8
590    X\P
591    X\x{123}\P
592    X\x{123}\x{123}\P
593    X\x{123}\x{123}\x{123}\P
594    X\x{123}\x{123}\x{123}\x{123}\P
595
596/X\D{2,4}+b/8
597    X\P
598    X\x{123}\P
599    X\x{123}\x{123}\P
600    X\x{123}\x{123}\x{123}\P
601    X\x{123}\x{123}\x{123}\x{123}\P
602
603/X[abc]{2,4}b/8
604    X\P
605    Xa\P
606    Xaa\P
607    Xaaa\P
608    Xaaaa\P
609
610/X[abc]{2,4}?b/8
611    X\P
612    Xa\P
613    Xaa\P
614    Xaaa\P
615    Xaaaa\P
616
617/X[abc]{2,4}+b/8
618    X\P
619    Xa\P
620    Xaa\P
621    Xaaa\P
622    Xaaaa\P
623
624/X[abc\x{123}]{2,4}b/8
625    X\P
626    X\x{123}\P
627    X\x{123}\x{123}\P
628    X\x{123}\x{123}\x{123}\P
629    X\x{123}\x{123}\x{123}\x{123}\P
630
631/X[abc\x{123}]{2,4}?b/8
632    X\P
633    X\x{123}\P
634    X\x{123}\x{123}\P
635    X\x{123}\x{123}\x{123}\P
636    X\x{123}\x{123}\x{123}\x{123}\P
637
638/X[abc\x{123}]{2,4}+b/8
639    X\P
640    X\x{123}\P
641    X\x{123}\x{123}\P
642    X\x{123}\x{123}\x{123}\P
643    X\x{123}\x{123}\x{123}\x{123}\P
644
645/X[^a]{2,4}b/8
646    X\P
647    Xz\P
648    Xzz\P
649    Xzzz\P
650    Xzzzz\P
651
652/X[^a]{2,4}?b/8
653    X\P
654    Xz\P
655    Xzz\P
656    Xzzz\P
657    Xzzzz\P
658
659/X[^a]{2,4}+b/8
660    X\P
661    Xz\P
662    Xzz\P
663    Xzzz\P
664    Xzzzz\P
665
666/X[^a]{2,4}b/8
667    X\P
668    X\x{123}\P
669    X\x{123}\x{123}\P
670    X\x{123}\x{123}\x{123}\P
671    X\x{123}\x{123}\x{123}\x{123}\P
672
673/X[^a]{2,4}?b/8
674    X\P
675    X\x{123}\P
676    X\x{123}\x{123}\P
677    X\x{123}\x{123}\x{123}\P
678    X\x{123}\x{123}\x{123}\x{123}\P
679
680/X[^a]{2,4}+b/8
681    X\P
682    X\x{123}\P
683    X\x{123}\x{123}\P
684    X\x{123}\x{123}\x{123}\P
685    X\x{123}\x{123}\x{123}\x{123}\P
686
687/(Y)X\1{2,4}b/8
688    YX\P
689    YXY\P
690    YXYY\P
691    YXYYY\P
692    YXYYYY\P
693
694/(Y)X\1{2,4}?b/8
695    YX\P
696    YXY\P
697    YXYY\P
698    YXYYY\P
699    YXYYYY\P
700
701/(Y)X\1{2,4}+b/8
702    YX\P
703    YXY\P
704    YXYY\P
705    YXYYY\P
706    YXYYYY\P
707
708/(\x{123})X\1{2,4}b/8
709    \x{123}X\P
710    \x{123}X\x{123}\P
711    \x{123}X\x{123}\x{123}\P
712    \x{123}X\x{123}\x{123}\x{123}\P
713    \x{123}X\x{123}\x{123}\x{123}\x{123}\P
714
715/(\x{123})X\1{2,4}?b/8
716    \x{123}X\P
717    \x{123}X\x{123}\P
718    \x{123}X\x{123}\x{123}\P
719    \x{123}X\x{123}\x{123}\x{123}\P
720    \x{123}X\x{123}\x{123}\x{123}\x{123}\P
721
722/(\x{123})X\1{2,4}+b/8
723    \x{123}X\P
724    \x{123}X\x{123}\P
725    \x{123}X\x{123}\x{123}\P
726    \x{123}X\x{123}\x{123}\x{123}\P
727    \x{123}X\x{123}\x{123}\x{123}\x{123}\P
728
729/\bthe cat\b/8
730    the cat\P
731    the cat\P\P
732
733/abcd*/8
734    xxxxabcd\P
735    xxxxabcd\P\P
736
737/abcd*/i8
738    xxxxabcd\P
739    xxxxabcd\P\P
740    XXXXABCD\P
741    XXXXABCD\P\P
742
743/abc\d*/8
744    xxxxabc1\P
745    xxxxabc1\P\P
746
747/(a)bc\1*/8
748    xxxxabca\P
749    xxxxabca\P\P
750
751/abc[de]*/8
752    xxxxabcde\P
753    xxxxabcde\P\P
754
755/X\W{3}X/8
756    \PX
757
758/\h/SI
759
760/\h/SI8
761    ABC\x{09}
762    ABC\x{20}
763    ABC\x{a0}
764    ABC\x{1680}
765    ABC\x{180e}
766    ABC\x{2000}
767    ABC\x{202f}
768    ABC\x{205f}
769    ABC\x{3000}
770
771/\v/SI
772
773/\v/SI8
774    ABC\x{0a}
775    ABC\x{0b}
776    ABC\x{0c}
777    ABC\x{0d}
778    ABC\x{85}
779    ABC\x{2028}
780
781/\R/SI
782
783/\R/SI8
784
785/\h*A/SI8
786    CDBABC
787
788/\v+A/SI8
789
790/\s?xxx\s/8SI
791
792/\sxxx\s/8T1
793    AB\x{85}xxx\x{a0}XYZ
794    AB\x{a0}xxx\x{85}XYZ
795
796/\sxxx\s/I8ST1
797    AB\x{85}xxx\x{a0}XYZ
798    AB\x{a0}xxx\x{85}XYZ
799
800/\S \S/8T1
801    \x{a2} \x{84}
802
803/\S \S/I8ST1
804    \x{a2} \x{84}
805    A Z
806
807'A#хц'8x<any>BZ
808
809'A#хц
810  PQ'8x<any>BZ
811
812/a+#хaa
813  z#XX?/8x<any>BZ
814
815/a+#хaa
816  z#х?/8x<any>BZ
817
818/\g{A}xxx#bXX(?'A'123)
819(?'A'456)/8x<any>BZ
820
821/\g{A}xxx#bх(?'A'123)
822(?'A'456)/8x<any>BZ
823
824/a+/8
825    a\x{123}aa\>1
826    a\x{123}aa\>2
827    a\x{123}aa\>3
828    a\x{123}aa\>4
829    a\x{123}aa\>5
830    a\x{123}aa\>6
831
832/^\cģ/8
833
834/-- End of testinput5 --/
835