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.
6 #newline_default lf anycrlf any
57 a\x{1234}\x{4321}\x{3412}b
65 a\x{1234}\x{4321}\x{3412}b
67 a\x{1234}\x{4321}\x{3412}\x{3421}b
74 a\x{1234}\x{4321}\x{3412}b
76 a\x{1234}\x{4321}\x{3412}\x{3421}b
83 a\x{1234}\x{4321}\x{3412}b
85 a\x{1234}\x{4321}\x{3412}\x{3421}b
95 a\x{1234}\x{4321}\x{3412}b
97 a\x{1234}\x{4321}\x{3412}\x{3421}b
111 /(?<=a\x{100}b)cd/utf
114 /(?<=a\x{100000}b)cd/utf
118 \x{100}\x{100}\x{100}b
169 \x{100}\x{100}\x{100}\x{100}
173 \x{100}\x{100}\x{100}\x{100}
176 abcd\x{100}\x{100}\x{100}\x{100}
179 abcd\x{100}\x{100}\x{100}\x{100}
182 abcd\x{100}\x{100}\x{100}\x{100}
185 abcd\x{100}\x{100}\x{100}XX
188 abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
191 abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
193 /(?<=a\x{100}{2}b)X/utf,aftertext
194 Xyyya\x{100}\x{100}bXzzz
197 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
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}
270 />\s{2,3}</utf,aftertext
276 />\s{2,3}?</utf,aftertext
326 /[\x{100}\x{200}]/utf
330 /[\x{100}-\x{200}]/utf
342 /[Q\x{100}\x{200}]/utf
347 /[Q\x{100}-\x{200}]/utf
361 /[\x{100}\x{200}]{1,3}/utf
364 ab\x{200}\x{100}\x{200}\x{100}cd
366 /[\x{100}\x{200}]{1,3}?/utf
369 ab\x{200}\x{100}\x{200}\x{100}cd
371 /[Q\x{100}\x{200}]{1,3}/utf
374 ab\x{200}\x{100}\x{200}\x{100}cd
376 /[Q\x{100}\x{200}]{1,3}?/utf
379 ab\x{200}\x{100}\x{200}\x{100}cd
381 /(?<=[\x{100}\x{200}])X/utf
387 /(?<=[Q\x{100}\x{200}])X/utf
394 /(?<=[\x{100}\x{200}]{3})X/utf
395 abc\x{100}\x{200}\x{100}X
400 /[^\x{100}\x{200}]X/utf
408 /[^Q\x{100}\x{200}]X/utf
417 /[^\x{100}-\x{200}]X/utf
499 \x{442}\x{435}\x{441}\x{442}
502 \x{442}\x{435}\x{441}\x{442}
505 \x{442}\x{435}\x{441}\x{442}
508 \x{442}\x{435}\x{441}\x{442}
511 \x{2442}\x{2435}\x{2441}\x{2442}
514 \x{2442}\x{2435}\x{2441}\x{2442}
517 abc\n\r\x{442}\x{435}\x{441}\x{442}xyz
520 \x{442}\x{435}\x{441}\x{442}
523 abc def\x{442}\x{443}xyz\npqr
526 abc def\x{442}\x{443}xyz\npqr
570 /[^ABCDEFGHIJKLMNOPQRSTUVWXYZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉƊƋƎƏƐƑƓƔƖƗƘƜƝƟƠƢƤƦƧƩƬƮƯƱƲƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶǷǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁΆΈΉΊΌΎΏΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫϒϓϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸԀԂԄԆԈԊԌԎԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸἈἉἊἋἌἍἎἏἘἙἚἛἜἝἨἩἪἫἬἭἮἯἸἹἺἻἼἽἾἿὈὉὊὋὌὍὙὛὝὟὨὩὪὫὬὭὮὯᾸᾹᾺΆῈΈῊΉῘῙῚΊῨῩῪΎῬῸΌῺΏabcdefghijklmnopqrstuvwxyzªµºßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżžſƀƃƅƈƌƍƒƕƙƚƛƞơƣƥƨƪƫƭưƴƶƹƺƽƾƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳȴȵȶȷȸȹȼȿɀɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯΐάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϐϑϕϖϗϙϛϝϟϡϣϥϧϩϫϭϯϰϱϲϳϵϸϻϼабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹԁԃԅԇԉԋԍԏաբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆևᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩᴪᴫᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚẛạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹἀἁἂἃἄἅἆἇἐἑἒἓἔἕἠἡἢἣἤἥἦἧἰἱἲἳἴἵἶἷὀὁὂὃὄὅὐὑὒὓὔὕὖὗὠὡὢὣὤὥὦὧὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾐᾑᾒᾓᾔᾕᾖᾗᾠᾡᾢᾣᾤᾥᾦᾧᾰᾱᾲᾳᾴᾶᾷιῂῃῄῆῇῐῑῒΐῖῗῠῡῢΰῤῥῦῧῲῳῴῶῷⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⴀⴁⴂⴃⴄⴅⴆⴇⴈⴉⴊⴋⴌⴍⴎⴏⴐⴑⴒⴓⴔⴕⴖⴗⴘⴙⴚⴛⴜⴝⴞⴟⴠⴡⴢⴣⴤⴥfffiflffifflſtstﬓﬔﬕﬖﬗ\d_^]/utf
584 /(?i)[\xc3\xa9\xc3\xbd]|[\xc3\xa9\xc3\xbdA]/utf
589 /^([a\x{c0}]*?)aa/utf
592 /^([a\x{c0}]*?)aa/utf
600 /^([a\x{c0}]*)a\x{c0}/utf
615 /a(*:a\x{1234}b)/utf,mark
707 \x{100}\x{100}\x{100}\x{100}
709 \x{100}\x{100}\x{100}
712 \x{100}\x{100}\x{100}\x{100}
714 \x{100}\x{100}\x{100}
720 \x{10123}\x{10124}\x{10125}
722 /^#[^\x{ffff}]#[^\x{ffff}]#[^\x{ffff}]#/utf
723 #\x{10000}#\x{100}#\x{10ffff}#
725 # Unicode property support tests
727 /^\pC\pL\pM\pN\pP\pS\pZ</utf
728 \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
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}
955 \x{660}\x{661}\x{662}ABC
958 \x{660}\x{661}\x{662}ABC
961 \x{660}\x{661}\x{662}ABC
964 \x{660}\x{661}\x{662}ABC
967 \x{660}\x{661}\x{662}ABC
970 \x{660}\x{661}\x{662}ABC
973 \x{660}\x{661}\x{662}ABC
976 \x{660}\x{661}\x{662}ABC
978 /\p{Nd}{2,3}?(..)/utf
979 \x{660}\x{661}\x{662}ABC
982 \x{660}\x{661}\x{662}ABC
985 \x{660}\x{661}\x{662}ABC
988 \x{660}\x{661}\x{662}ABC
991 \x{660}\x{661}\x{662}ABC
995 \x{660}\x{661}\x{662}ABC
1018 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1020 11111111111111111111111111111111111111111111111111111111111111111111111
1023 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1025 11111111111111111111111111111111111111111111111111111111111111111111111
1028 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1030 11111111111111111111111111111111111111111111111111111111111111111111111
1033 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1035 11111111111111111111111111111111111111111111111111111111111111111111111
1038 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1040 11111111111111111111111111111111111111111111111111111111111111111111111
1062 /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
1063 A\x{391}\x{10427}\x{ff3a}\x{1fb0}
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}
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}
1080 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
1082 /\x{391}{3,5}(.)/i,utf
1083 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
1085 /\x{391}{3,5}?(.)/i,utf
1086 \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
1088 /[\x{391}\x{ff3a}]/i,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
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
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
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
1112 A\x{300}\x{301}\x{302}
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
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
1129 A\x{300}\x{301}\x{302}BC
1133 \x{2e81}\x{3007}\x{2f804}\x{31a0}
1258 \x{1234}\n\r\x{3456}xyz
1262 \x{1234}\n\r\x{3456}xyz
1267 \x{1234}\n\r\x{3456}xyz
1347 /^(\p{Z}[^\p{C}\p{Z}]+)*$/
1356 /^\p{Balinese}\p{Cuneiform}\p{Nko}\p{Phags_Pa}\p{Phoenician}/utf
1357 \x{1b00}\x{12000}\x{7c0}\x{a840}\x{10900}
1359 # Check property support in non-UTF mode
1377 /[\PPP\x8a]{1,}\x80/
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}====
1432 /\x{a77d}\x{1d79}/i,utf
1436 /\x{a77d}\x{1d79}/utf
1453 # The next two tests are for property support in non-UTF mode
1456 \x41\x20\x50\xC2\x54\xC9\x20\x54\x4F\x44\x41\x59
1459 \x41\x20\x50\xC2\x54\xC9\x20\x54\x4F\x44\x41\x59
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}
1465 Az_\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}1\x{660}\x{bef}\x{16ee}
1467 /^[[:xdigit:]]*/utf,ucp
1468 1a\x{660}\x{bef}\x{16ee}
1471 1\x{660}\x{bef}\x{16ee}
1473 /^[[:digit:]]+/utf,ucp
1474 1\x{660}\x{bef}\x{16ee}
1477 >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b}
1480 >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b}
1482 /^>[[:space:]]*/utf,ucp
1483 >\x{20}\x{a0}\x{1680}\x{2028}\x{2029}\x{202f}\x{9}\x{b}
1485 /^>[[:blank:]]*/utf,ucp
1486 >\x{20}\x{a0}\x{1680}\x{2000}\x{202f}\x{9}\x{b}\x{2028}
1488 /^[[:alpha:]]*/utf,ucp
1489 Az\x{aa}\x{c0}\x{1c5}\x{2b0}\x{3b6}\x{1d7c9}\x{2fa1d}
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}
1494 /^[[:cntrl:]]*/utf,ucp
1495 \x{0}\x{09}\x{1f}\x{7f}\x{9f}
1497 /^[[:graph:]]*/utf,ucp
1500 /^[[:print:]]*/utf,ucp
1503 /^[[:punct:]]*/utf,ucp
1528 # These are tests for extended grapheme clusters
1537 *These match up to the roman letters
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
1577 /^(?>\X{2})X/utf,aftertext
1578 \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
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
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
1590 /\X*Z/utf,no_start_optimize
1594 /\X*(.)/utf,no_start_optimize
1595 A\x{1111}\x{ae4c}\x{1169}
1597 # --------------------------------------------
1617 # Check a reference with more than one other case
1619 /^(\x{00b5})\1{2}$/i,utf
1620 \x{00b5}\x{039c}\x{03bc}
1622 # Characters with more than one other case; test in classes
1625 \x{00b5}\x{039c}\x{03bc}
1628 \x{00b5}\x{039c}\x{03bc}
1631 \x{00b5}\x{039c}\x{03bc}
1634 \x{00c5}\x{00e5}\x{212b}
1637 \x{00c5}\x{00e5}\x{212b}
1640 \x{00c5}\x{00e5}\x{212b}
1643 \x{01c4}\x{01c5}\x{01c6}
1646 \x{01c4}\x{01c5}\x{01c6}
1649 \x{01c4}\x{01c5}\x{01c6}
1652 \x{01c7}\x{01c8}\x{01c9}
1655 \x{01c7}\x{01c8}\x{01c9}
1658 \x{01c7}\x{01c8}\x{01c9}
1661 \x{01ca}\x{01cb}\x{01cc}
1664 \x{01ca}\x{01cb}\x{01cc}
1667 \x{01ca}\x{01cb}\x{01cc}
1670 \x{01f1}\x{01f2}\x{01f3}
1673 \x{01f1}\x{01f2}\x{01f3}
1676 \x{01f1}\x{01f2}\x{01f3}
1679 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1682 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1685 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1688 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1691 \x{0392}\x{03b2}\x{03d0}
1694 \x{0392}\x{03b2}\x{03d0}
1697 \x{0392}\x{03b2}\x{03d0}
1700 \x{0395}\x{03b5}\x{03f5}
1703 \x{0395}\x{03b5}\x{03f5}
1706 \x{0395}\x{03b5}\x{03f5}
1709 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1712 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1715 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1718 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1721 \x{039a}\x{03ba}\x{03f0}
1724 \x{039a}\x{03ba}\x{03f0}
1727 \x{039a}\x{03ba}\x{03f0}
1730 \x{03a0}\x{03c0}\x{03d6}
1733 \x{03a0}\x{03c0}\x{03d6}
1736 \x{03a0}\x{03c0}\x{03d6}
1739 \x{03a1}\x{03c1}\x{03f1}
1742 \x{03a1}\x{03c1}\x{03f1}
1745 \x{03a1}\x{03c1}\x{03f1}
1748 \x{03A3}\x{03C2}\x{03C3}
1751 \x{03A3}\x{03C2}\x{03C3}
1754 \x{03A3}\x{03C2}\x{03C3}
1757 \x{03a6}\x{03c6}\x{03d5}
1760 \x{03a6}\x{03c6}\x{03d5}
1763 \x{03a6}\x{03c6}\x{03d5}
1766 \x{03c9}\x{03a9}\x{2126}
1769 \x{03c9}\x{03a9}\x{2126}
1772 \x{03c9}\x{03a9}\x{2126}
1775 \x{1e60}\x{1e61}\x{1e9b}
1778 \x{1e60}\x{1e61}\x{1e9b}
1781 \x{1e60}\x{1e61}\x{1e9b}
1783 # Perl 5.12.4 gets these wrong, but 5.15.3 is OK
1786 \x{004b}\x{006b}\x{212a}
1789 \x{004b}\x{006b}\x{212a}
1792 \x{004b}\x{006b}\x{212a}
1795 \x{0053}\x{0073}\x{017f}
1798 \x{0053}\x{0073}\x{017f}
1801 \x{0053}\x{0073}\x{017f}
1803 # --------------------------------------
1821 ΣΆΜΟΣ ΣΆΜΟΣσάμοςσάμος
1823 # Perl matches these
1826 \x{00b5}\x{039c}\x{03bc}
1829 \x{00b5}\x{039c}\x{03bc}
1832 \x{00b5}\x{039c}\x{03bc}
1836 \x{00c5}\x{00e5}\x{212b}
1839 \x{00c5}\x{00e5}\x{212b}
1842 \x{00c5}\x{00e5}\x{212b}
1846 \x{01c4}\x{01c5}\x{01c6}
1849 \x{01c4}\x{01c5}\x{01c6}
1852 \x{01c4}\x{01c5}\x{01c6}
1856 \x{01c7}\x{01c8}\x{01c9}
1859 \x{01c7}\x{01c8}\x{01c9}
1862 \x{01c7}\x{01c8}\x{01c9}
1866 \x{01ca}\x{01cb}\x{01cc}
1869 \x{01ca}\x{01cb}\x{01cc}
1872 \x{01ca}\x{01cb}\x{01cc}
1876 \x{01f1}\x{01f2}\x{01f3}
1879 \x{01f1}\x{01f2}\x{01f3}
1882 \x{01f1}\x{01f2}\x{01f3}
1886 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1889 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1892 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1895 \x{0345}\x{0399}\x{03b9}\x{1fbe}
1899 \x{0392}\x{03b2}\x{03d0}
1902 \x{0392}\x{03b2}\x{03d0}
1905 \x{0392}\x{03b2}\x{03d0}
1909 \x{0395}\x{03b5}\x{03f5}
1912 \x{0395}\x{03b5}\x{03f5}
1915 \x{0395}\x{03b5}\x{03f5}
1919 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1922 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1925 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1928 \x{0398}\x{03b8}\x{03d1}\x{03f4}
1932 \x{039a}\x{03ba}\x{03f0}
1935 \x{039a}\x{03ba}\x{03f0}
1938 \x{039a}\x{03ba}\x{03f0}
1942 \x{03a0}\x{03c0}\x{03d6}
1945 \x{03a0}\x{03c0}\x{03d6}
1948 \x{03a0}\x{03c0}\x{03d6}
1952 \x{03a1}\x{03c1}\x{03f1}
1955 \x{03a1}\x{03c1}\x{03f1}
1958 \x{03a1}\x{03c1}\x{03f1}
1962 \x{03A3}\x{03C2}\x{03C3}
1965 \x{03A3}\x{03C2}\x{03C3}
1968 \x{03A3}\x{03C2}\x{03C3}
1972 \x{03a6}\x{03c6}\x{03d5}
1975 \x{03a6}\x{03c6}\x{03d5}
1978 \x{03a6}\x{03c6}\x{03d5}
1982 \x{03c9}\x{03a9}\x{2126}
1985 \x{03c9}\x{03a9}\x{2126}
1988 \x{03c9}\x{03a9}\x{2126}
1992 \x{1e60}\x{1e61}\x{1e9b}
1995 \x{1e60}\x{1e61}\x{1e9b}
1998 \x{1e60}\x{1e61}\x{1e9b}
2014 # Perl 5.12.4 gets these wrong, but 5.15.3 is OK
2017 \x{004b}\x{006b}\x{212a}
2020 \x{004b}\x{006b}\x{212a}
2023 \x{004b}\x{006b}\x{212a}
2027 \x{0053}\x{0073}\x{017f}
2030 \x{0053}\x{0073}\x{017f}
2033 \x{0053}\x{0073}\x{017f}
2053 /^[[:graph:]]+$/utf,ucp
2055 Mark:\x{300}\x{1d172}\x{1d17b}
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}
2065 \x{fff9}\x{fffa}\x{fffb}
2067 \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
2069 \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
2087 /^[[:print:]]+$/utf,ucp
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}
2094 Mark:\x{300}\x{1d172}\x{1d17b}
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}
2102 \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
2103 \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
2105 \x{fff9}\x{fffa}\x{fffb}
2107 \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
2109 \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
2121 /^[[:punct:]]+$/utf,ucp
2123 !\"#%&'()*,-./:;?@[\\]_{}
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}
2135 Mark:\x{300}\x{1d172}\x{1d17b}
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}
2145 \x{fff9}\x{fffa}\x{fffb}
2147 \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
2149 \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
2151 /^[[:^print:]]+$/utf,ucp
2152 \x{09}\x{1D}\x{85}\x{2028}\x{2029}\x{2065}
2153 \x{e0002}\x{e001f}\x{e0080}
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}
2161 Mark:\x{300}\x{1d172}\x{1d17b}
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}
2169 \x{2060}\x{2061}\x{2062}\x{2063}\x{2064}
2170 \x{206a}\x{206b}\x{206c}\x{206d}\x{206e}\x{206f}
2172 \x{fff9}\x{fffa}\x{fffb}
2174 \x{1d173}\x{1d174}\x{1d175}\x{1d176}\x{1d177}\x{1d178}\x{1d179}\x{1d17a}
2176 \x{e0020}\x{e0030}\x{e0040}\x{e0050}\x{e0060}\x{e0070}\x{e007f}
2178 /^[[:^punct:]]+$/utf,ucp
2182 !\"#%&'()*,-./:;?@[\\]_{}
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.
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}
2207 /^(\x{23a})\1*(..)/i,utf
2208 \x{23a}\x{2c65}\x{2c65}\x{2c65}
2209 \x{23a}\x{23a}\x{2c65}\x{23a}
2211 /^(\x{23a})\1*(...)/i,utf
2212 \x{23a}\x{2c65}\x{2c65}\x{2c65}
2213 \x{23a}\x{23a}\x{2c65}\x{23a}
2215 /^(\x{23a})\1*(....)/i,utf
2217 \x{23a}\x{2c65}\x{2c65}\x{2c65}
2218 \x{23a}\x{23a}\x{2c65}\x{23a}
2228 /[[:punct:]]/utf,ucp
2231 /[[:^ascii:]]/utf,ucp
2240 /[[:^ascii:]\w]/utf,ucp
2249 /[\w[:^ascii:]]/utf,ucp
2258 /[^[:ascii:]\W]/utf,ucp
2267 /[^[:^ascii:]\d]/utf,ucp
2280 /(?(?=.*b)(?=.*b)\pL|.*c)/
2283 /^\x{123}+?$/utf,no_auto_possess
2284 \x{123}\x{123}\x{123}
2286 /^\x{123}+?$/i,utf,no_auto_possess
2287 \x{123}\x{122}\x{123}
2289 \x{123}\x{124}\x{123}
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".
2312 /[^\x{100}-\x{ffff}]*[\x80-\xff]/utf
2315 /[^\x{100}-\x{ffff}ABC]*[\x80-\xff]/utf
2318 /[^\x{100}-\x{ffff}]*[\x80-\xff]/i,utf