testoutput7 99 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230
  1. # This set of tests checks UTF and Unicode property support with the DFA
  2. # matching functionality of pcre2_dfa_match(). A default subject modifier is
  3. # used to force DFA matching for all tests.
  4. #subject dfa
  5. #newline_default LF any anyCRLF
  6. /\x{100}ab/utf
  7. \x{100}ab
  8. 0: \x{100}ab
  9. /a\x{100}*b/utf
  10. ab
  11. 0: ab
  12. a\x{100}b
  13. 0: a\x{100}b
  14. a\x{100}\x{100}b
  15. 0: a\x{100}\x{100}b
  16. /a\x{100}+b/utf
  17. a\x{100}b
  18. 0: a\x{100}b
  19. a\x{100}\x{100}b
  20. 0: a\x{100}\x{100}b
  21. \= Expect no match
  22. ab
  23. No match
  24. /\bX/utf
  25. Xoanon
  26. 0: X
  27. +Xoanon
  28. 0: X
  29. \x{300}Xoanon
  30. 0: X
  31. \= Expect no match
  32. YXoanon
  33. No match
  34. /\BX/utf
  35. YXoanon
  36. 0: X
  37. \= Expect no match
  38. Xoanon
  39. No match
  40. +Xoanon
  41. No match
  42. \x{300}Xoanon
  43. No match
  44. /X\b/utf
  45. X+oanon
  46. 0: X
  47. ZX\x{300}oanon
  48. 0: X
  49. FAX
  50. 0: X
  51. \= Expect no match
  52. Xoanon
  53. No match
  54. /X\B/utf
  55. Xoanon
  56. 0: X
  57. \= Expect no match
  58. X+oanon
  59. No match
  60. ZX\x{300}oanon
  61. No match
  62. FAX
  63. No match
  64. /[^a]/utf
  65. abcd
  66. 0: b
  67. a\x{100}
  68. 0: \x{100}
  69. /^[abc\x{123}\x{400}-\x{402}]{2,3}\d/utf
  70. ab99
  71. 0: ab9
  72. \x{123}\x{123}45
  73. 0: \x{123}\x{123}4
  74. \x{400}\x{401}\x{402}6
  75. 0: \x{400}\x{401}\x{402}6
  76. \= Expect no match
  77. d99
  78. No match
  79. \x{123}\x{122}4
  80. No match
  81. \x{400}\x{403}6
  82. No match
  83. \x{400}\x{401}\x{402}\x{402}6
  84. No match
  85. /a.b/utf
  86. acb
  87. 0: acb
  88. a\x7fb
  89. 0: a\x{7f}b
  90. a\x{100}b
  91. 0: a\x{100}b
  92. \= Expect no match
  93. a\nb
  94. No match
  95. /a(.{3})b/utf
  96. a\x{4000}xyb
  97. 0: a\x{4000}xyb
  98. a\x{4000}\x7fyb
  99. 0: a\x{4000}\x{7f}yb
  100. a\x{4000}\x{100}yb
  101. 0: a\x{4000}\x{100}yb
  102. \= Expect no match
  103. a\x{4000}b
  104. No match
  105. ac\ncb
  106. No match
  107. /a(.*?)(.)/
  108. a\xc0\x88b
  109. 0: a\xc0\x88b
  110. 1: a\xc0\x88
  111. 2: a\xc0
  112. /a(.*?)(.)/utf
  113. a\x{100}b
  114. 0: a\x{100}b
  115. 1: a\x{100}
  116. /a(.*)(.)/
  117. a\xc0\x88b
  118. 0: a\xc0\x88b
  119. 1: a\xc0\x88
  120. 2: a\xc0
  121. /a(.*)(.)/utf
  122. a\x{100}b
  123. 0: a\x{100}b
  124. 1: a\x{100}
  125. /a(.)(.)/
  126. a\xc0\x92bcd
  127. 0: a\xc0\x92
  128. /a(.)(.)/utf
  129. a\x{240}bcd
  130. 0: a\x{240}b
  131. /a(.?)(.)/
  132. a\xc0\x92bcd
  133. 0: a\xc0\x92
  134. 1: a\xc0
  135. /a(.?)(.)/utf
  136. a\x{240}bcd
  137. 0: a\x{240}b
  138. 1: a\x{240}
  139. /a(.??)(.)/
  140. a\xc0\x92bcd
  141. 0: a\xc0\x92
  142. 1: a\xc0
  143. /a(.??)(.)/utf
  144. a\x{240}bcd
  145. 0: a\x{240}b
  146. 1: a\x{240}
  147. /a(.{3})b/utf
  148. a\x{1234}xyb
  149. 0: a\x{1234}xyb
  150. a\x{1234}\x{4321}yb
  151. 0: a\x{1234}\x{4321}yb
  152. a\x{1234}\x{4321}\x{3412}b
  153. 0: a\x{1234}\x{4321}\x{3412}b
  154. \= Expect no match
  155. a\x{1234}b
  156. No match
  157. ac\ncb
  158. No match
  159. /a(.{3,})b/utf
  160. a\x{1234}xyb
  161. 0: a\x{1234}xyb
  162. a\x{1234}\x{4321}yb
  163. 0: a\x{1234}\x{4321}yb
  164. a\x{1234}\x{4321}\x{3412}b
  165. 0: a\x{1234}\x{4321}\x{3412}b
  166. axxxxbcdefghijb
  167. 0: axxxxbcdefghijb
  168. 1: axxxxb
  169. a\x{1234}\x{4321}\x{3412}\x{3421}b
  170. 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
  171. \= Expect no match
  172. a\x{1234}b
  173. No match
  174. /a(.{3,}?)b/utf
  175. a\x{1234}xyb
  176. 0: a\x{1234}xyb
  177. a\x{1234}\x{4321}yb
  178. 0: a\x{1234}\x{4321}yb
  179. a\x{1234}\x{4321}\x{3412}b
  180. 0: a\x{1234}\x{4321}\x{3412}b
  181. axxxxbcdefghijb
  182. 0: axxxxbcdefghijb
  183. 1: axxxxb
  184. a\x{1234}\x{4321}\x{3412}\x{3421}b
  185. 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
  186. \= Expect no match
  187. a\x{1234}b
  188. No match
  189. /a(.{3,5})b/utf
  190. a\x{1234}xyb
  191. 0: a\x{1234}xyb
  192. a\x{1234}\x{4321}yb
  193. 0: a\x{1234}\x{4321}yb
  194. a\x{1234}\x{4321}\x{3412}b
  195. 0: a\x{1234}\x{4321}\x{3412}b
  196. axxxxbcdefghijb
  197. 0: axxxxb
  198. a\x{1234}\x{4321}\x{3412}\x{3421}b
  199. 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
  200. axbxxbcdefghijb
  201. 0: axbxxb
  202. axxxxxbcdefghijb
  203. 0: axxxxxb
  204. \= Expect no match
  205. a\x{1234}b
  206. No match
  207. axxxxxxbcdefghijb
  208. No match
  209. /a(.{3,5}?)b/utf
  210. a\x{1234}xyb
  211. 0: a\x{1234}xyb
  212. a\x{1234}\x{4321}yb
  213. 0: a\x{1234}\x{4321}yb
  214. a\x{1234}\x{4321}\x{3412}b
  215. 0: a\x{1234}\x{4321}\x{3412}b
  216. axxxxbcdefghijb
  217. 0: axxxxb
  218. a\x{1234}\x{4321}\x{3412}\x{3421}b
  219. 0: a\x{1234}\x{4321}\x{3412}\x{3421}b
  220. axbxxbcdefghijb
  221. 0: axbxxb
  222. axxxxxbcdefghijb
  223. 0: axxxxxb
  224. \= Expect no match
  225. a\x{1234}b
  226. No match
  227. axxxxxxbcdefghijb
  228. No match
  229. /^[a\x{c0}]/utf
  230. \= Expect no match
  231. \x{100}
  232. No match
  233. /(?<=aXb)cd/utf
  234. aXbcd
  235. 0: cd
  236. /(?<=a\x{100}b)cd/utf
  237. a\x{100}bcd
  238. 0: cd
  239. /(?<=a\x{100000}b)cd/utf
  240. a\x{100000}bcd
  241. 0: cd
  242. /(?:\x{100}){3}b/utf
  243. \x{100}\x{100}\x{100}b
  244. 0: \x{100}\x{100}\x{100}b
  245. \= Expect no match
  246. \x{100}\x{100}b
  247. No match
  248. /\x{ab}/utf
  249. \x{ab}
  250. 0: \x{ab}
  251. \xc2\xab
  252. 0: \x{ab}
  253. \= Expect no match
  254. \x00{ab}
  255. No match
  256. /(?<=(.))X/utf
  257. WXYZ
  258. 0: X
  259. \x{256}XYZ
  260. 0: X
  261. \= Expect no match
  262. XYZ
  263. No match
  264. /[^a]+/g,utf
  265. bcd
  266. 0: bcd
  267. \x{100}aY\x{256}Z
  268. 0: \x{100}
  269. 0: Y\x{256}Z
  270. /^[^a]{2}/utf
  271. \x{100}bc
  272. 0: \x{100}b
  273. /^[^a]{2,}/utf
  274. \x{100}bcAa
  275. 0: \x{100}bcA
  276. /^[^a]{2,}?/utf
  277. \x{100}bca
  278. 0: \x{100}bc
  279. 1: \x{100}b
  280. /[^a]+/gi,utf
  281. bcd
  282. 0: bcd
  283. \x{100}aY\x{256}Z
  284. 0: \x{100}
  285. 0: Y\x{256}Z
  286. /^[^a]{2}/i,utf
  287. \x{100}bc
  288. 0: \x{100}b
  289. /^[^a]{2,}/i,utf
  290. \x{100}bcAa
  291. 0: \x{100}bc
  292. /^[^a]{2,}?/i,utf
  293. \x{100}bca
  294. 0: \x{100}bc
  295. 1: \x{100}b
  296. /\x{100}{0,0}/utf
  297. abcd
  298. 0:
  299. /\x{100}?/utf
  300. abcd
  301. 0:
  302. \x{100}\x{100}
  303. 0: \x{100}
  304. /\x{100}{0,3}/utf
  305. \x{100}\x{100}
  306. 0: \x{100}\x{100}
  307. \x{100}\x{100}\x{100}\x{100}
  308. 0: \x{100}\x{100}\x{100}
  309. /\x{100}*/utf
  310. abce
  311. 0:
  312. \x{100}\x{100}\x{100}\x{100}
  313. 0: \x{100}\x{100}\x{100}\x{100}
  314. /\x{100}{1,1}/utf
  315. abcd\x{100}\x{100}\x{100}\x{100}
  316. 0: \x{100}
  317. /\x{100}{1,3}/utf
  318. abcd\x{100}\x{100}\x{100}\x{100}
  319. 0: \x{100}\x{100}\x{100}
  320. /\x{100}+/utf
  321. abcd\x{100}\x{100}\x{100}\x{100}
  322. 0: \x{100}\x{100}\x{100}\x{100}
  323. /\x{100}{3}/utf
  324. abcd\x{100}\x{100}\x{100}XX
  325. 0: \x{100}\x{100}\x{100}
  326. /\x{100}{3,5}/utf
  327. abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
  328. 0: \x{100}\x{100}\x{100}\x{100}\x{100}
  329. /\x{100}{3,}/utf,no_auto_possess
  330. abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
  331. 0: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  332. 1: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  333. 2: \x{100}\x{100}\x{100}\x{100}\x{100}
  334. 3: \x{100}\x{100}\x{100}\x{100}
  335. 4: \x{100}\x{100}\x{100}
  336. /(?<=a\x{100}{2}b)X/utf
  337. Xyyya\x{100}\x{100}bXzzz
  338. 0: X
  339. /\D*/utf,no_auto_possess
  340. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  341. Matched, but offsets vector is too small to show all matches
  342. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  343. 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  344. 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  345. 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  346. 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  347. 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  348. 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  349. 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  350. 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  351. 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  352. 10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  353. 11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  354. 12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  355. 13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  356. 14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  357. /\D*/utf,no_auto_possess
  358. \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  359. Matched, but offsets vector is too small to show all matches
  360. 0: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  361. 1: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  362. 2: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  363. 3: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  364. 4: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  365. 5: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  366. 6: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  367. 7: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  368. 8: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  369. 9: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  370. 10: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  371. 11: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  372. 12: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  373. 13: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  374. 14: \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
  375. /\D/utf
  376. 1X2
  377. 0: X
  378. 1\x{100}2
  379. 0: \x{100}
  380. />\S/utf
  381. > >X Y
  382. 0: >X
  383. > >\x{100} Y
  384. 0: >\x{100}
  385. /\d/utf
  386. \x{100}3
  387. 0: 3
  388. /\s/utf
  389. \x{100} X
  390. 0:
  391. /\D+/utf
  392. 12abcd34
  393. 0: abcd
  394. \= Expect no match
  395. 1234
  396. No match
  397. /\D{2,3}/utf
  398. 12abcd34
  399. 0: abc
  400. 12ab34
  401. 0: ab
  402. \= Expect no match
  403. 1234
  404. No match
  405. 12a34
  406. No match
  407. /\D{2,3}?/utf
  408. 12abcd34
  409. 0: abc
  410. 1: ab
  411. 12ab34
  412. 0: ab
  413. \= Expect no match
  414. 1234
  415. No match
  416. 12a34
  417. No match
  418. /\d+/utf
  419. 12abcd34
  420. 0: 12
  421. /\d{2,3}/utf
  422. 12abcd34
  423. 0: 12
  424. 1234abcd
  425. 0: 123
  426. \= Expect no match
  427. 1.4
  428. No match
  429. /\d{2,3}?/utf
  430. 12abcd34
  431. 0: 12
  432. 1234abcd
  433. 0: 123
  434. 1: 12
  435. \= Expect no match
  436. 1.4
  437. No match
  438. /\S+/utf
  439. 12abcd34
  440. 0: 12abcd34
  441. \= Expect no match
  442. \ \
  443. No match
  444. /\S{2,3}/utf
  445. 12abcd34
  446. 0: 12a
  447. 1234abcd
  448. 0: 123
  449. \= Expect no match
  450. \ \
  451. No match
  452. /\S{2,3}?/utf
  453. 12abcd34
  454. 0: 12a
  455. 1: 12
  456. 1234abcd
  457. 0: 123
  458. 1: 12
  459. \= Expect no match
  460. \ \
  461. No match
  462. />\s+</utf
  463. 12> <34
  464. 0: > <
  465. />\s{2,3}</utf
  466. ab> <cd
  467. 0: > <
  468. ab> <ce
  469. 0: > <
  470. \= Expect no match
  471. ab> <cd
  472. No match
  473. />\s{2,3}?</utf
  474. ab> <cd
  475. 0: > <
  476. ab> <ce
  477. 0: > <
  478. \= Expect no match
  479. ab> <cd
  480. No match
  481. /\w+/utf
  482. 12 34
  483. 0: 12
  484. \= Expect no match
  485. +++=*!
  486. No match
  487. /\w{2,3}/utf
  488. ab cd
  489. 0: ab
  490. abcd ce
  491. 0: abc
  492. \= Expect no match
  493. a.b.c
  494. No match
  495. /\w{2,3}?/utf
  496. ab cd
  497. 0: ab
  498. abcd ce
  499. 0: abc
  500. 1: ab
  501. \= Expect no match
  502. a.b.c
  503. No match
  504. /\W+/utf
  505. 12====34
  506. 0: ====
  507. \= Expect no match
  508. abcd
  509. No match
  510. /\W{2,3}/utf
  511. ab====cd
  512. 0: ===
  513. ab==cd
  514. 0: ==
  515. \= Expect no match
  516. a.b.c
  517. No match
  518. /\W{2,3}?/utf
  519. ab====cd
  520. 0: ===
  521. 1: ==
  522. ab==cd
  523. 0: ==
  524. \= Expect no match
  525. a.b.c
  526. No match
  527. /[\x{100}]/utf
  528. \x{100}
  529. 0: \x{100}
  530. Z\x{100}
  531. 0: \x{100}
  532. \x{100}Z
  533. 0: \x{100}
  534. /[Z\x{100}]/utf
  535. Z\x{100}
  536. 0: Z
  537. \x{100}
  538. 0: \x{100}
  539. \x{100}Z
  540. 0: \x{100}
  541. /[\x{100}\x{200}]/utf
  542. ab\x{100}cd
  543. 0: \x{100}
  544. ab\x{200}cd
  545. 0: \x{200}
  546. /[\x{100}-\x{200}]/utf
  547. ab\x{100}cd
  548. 0: \x{100}
  549. ab\x{200}cd
  550. 0: \x{200}
  551. ab\x{111}cd
  552. 0: \x{111}
  553. /[z-\x{200}]/utf
  554. ab\x{100}cd
  555. 0: \x{100}
  556. ab\x{200}cd
  557. 0: \x{200}
  558. ab\x{111}cd
  559. 0: \x{111}
  560. abzcd
  561. 0: z
  562. ab|cd
  563. 0: |
  564. /[Q\x{100}\x{200}]/utf
  565. ab\x{100}cd
  566. 0: \x{100}
  567. ab\x{200}cd
  568. 0: \x{200}
  569. Q?
  570. 0: Q
  571. /[Q\x{100}-\x{200}]/utf
  572. ab\x{100}cd
  573. 0: \x{100}
  574. ab\x{200}cd
  575. 0: \x{200}
  576. ab\x{111}cd
  577. 0: \x{111}
  578. Q?
  579. 0: Q
  580. /[Qz-\x{200}]/utf
  581. ab\x{100}cd
  582. 0: \x{100}
  583. ab\x{200}cd
  584. 0: \x{200}
  585. ab\x{111}cd
  586. 0: \x{111}
  587. abzcd
  588. 0: z
  589. ab|cd
  590. 0: |
  591. Q?
  592. 0: Q
  593. /[\x{100}\x{200}]{1,3}/utf
  594. ab\x{100}cd
  595. 0: \x{100}
  596. ab\x{200}cd
  597. 0: \x{200}
  598. ab\x{200}\x{100}\x{200}\x{100}cd
  599. 0: \x{200}\x{100}\x{200}
  600. /[\x{100}\x{200}]{1,3}?/utf
  601. ab\x{100}cd
  602. 0: \x{100}
  603. ab\x{200}cd
  604. 0: \x{200}
  605. ab\x{200}\x{100}\x{200}\x{100}cd
  606. 0: \x{200}\x{100}\x{200}
  607. 1: \x{200}\x{100}
  608. 2: \x{200}
  609. /[Q\x{100}\x{200}]{1,3}/utf
  610. ab\x{100}cd
  611. 0: \x{100}
  612. ab\x{200}cd
  613. 0: \x{200}
  614. ab\x{200}\x{100}\x{200}\x{100}cd
  615. 0: \x{200}\x{100}\x{200}
  616. /[Q\x{100}\x{200}]{1,3}?/utf
  617. ab\x{100}cd
  618. 0: \x{100}
  619. ab\x{200}cd
  620. 0: \x{200}
  621. ab\x{200}\x{100}\x{200}\x{100}cd
  622. 0: \x{200}\x{100}\x{200}
  623. 1: \x{200}\x{100}
  624. 2: \x{200}
  625. /(?<=[\x{100}\x{200}])X/utf
  626. abc\x{200}X
  627. 0: X
  628. abc\x{100}X
  629. 0: X
  630. \= Expect no match
  631. X
  632. No match
  633. /(?<=[Q\x{100}\x{200}])X/utf
  634. abc\x{200}X
  635. 0: X
  636. abc\x{100}X
  637. 0: X
  638. abQX
  639. 0: X
  640. \= Expect no match
  641. X
  642. No match
  643. /(?<=[\x{100}\x{200}]{3})X/utf
  644. abc\x{100}\x{200}\x{100}X
  645. 0: X
  646. \= Expect no match
  647. abc\x{200}X
  648. No match
  649. X
  650. No match
  651. /[^\x{100}\x{200}]X/utf
  652. AX
  653. 0: AX
  654. \x{150}X
  655. 0: \x{150}X
  656. \x{500}X
  657. 0: \x{500}X
  658. \= Expect no match
  659. \x{100}X
  660. No match
  661. \x{200}X
  662. No match
  663. /[^Q\x{100}\x{200}]X/utf
  664. AX
  665. 0: AX
  666. \x{150}X
  667. 0: \x{150}X
  668. \x{500}X
  669. 0: \x{500}X
  670. \= Expect no match
  671. \x{100}X
  672. No match
  673. \x{200}X
  674. No match
  675. QX
  676. No match
  677. /[^\x{100}-\x{200}]X/utf
  678. AX
  679. 0: AX
  680. \x{500}X
  681. 0: \x{500}X
  682. \= Expect no match
  683. \x{100}X
  684. No match
  685. \x{150}X
  686. No match
  687. \x{200}X
  688. No match
  689. /[z-\x{100}]/i,utf
  690. z
  691. 0: z
  692. Z
  693. 0: Z
  694. \x{100}
  695. 0: \x{100}
  696. \= Expect no match
  697. \x{102}
  698. No match
  699. y
  700. No match
  701. /[\xFF]/
  702. >\xff<
  703. 0: \xff
  704. /[\xff]/utf
  705. >\x{ff}<
  706. 0: \x{ff}
  707. /[^\xFF]/
  708. XYZ
  709. 0: X
  710. /[^\xff]/utf
  711. XYZ
  712. 0: X
  713. \x{123}
  714. 0: \x{123}
  715. /^[ac]*b/utf
  716. \= Expect no match
  717. xb
  718. No match
  719. /^[ac\x{100}]*b/utf
  720. \= Expect no match
  721. xb
  722. No match
  723. /^[^x]*b/i,utf
  724. \= Expect no match
  725. xb
  726. No match
  727. /^[^x]*b/utf
  728. \= Expect no match
  729. xb
  730. No match
  731. /^\d*b/utf
  732. \= Expect no match
  733. xb
  734. No match
  735. /(|a)/g,utf
  736. catac
  737. 0:
  738. 0: a
  739. 1:
  740. 0:
  741. 0: a
  742. 1:
  743. 0:
  744. 0:
  745. a\x{256}a
  746. 0: a
  747. 1:
  748. 0:
  749. 0: a
  750. 1:
  751. 0:
  752. /^\x{85}$/i,utf
  753. \x{85}
  754. 0: \x{85}
  755. /^abc./gmx,newline=any,utf
  756. abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
  757. 0: abc1
  758. 0: abc2
  759. 0: abc3
  760. 0: abc4
  761. 0: abc5
  762. 0: abc6
  763. 0: abc7
  764. 0: abc8
  765. 0: abc9
  766. /abc.$/gmx,newline=any,utf
  767. abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
  768. 0: abc1
  769. 0: abc2
  770. 0: abc3
  771. 0: abc4
  772. 0: abc5
  773. 0: abc6
  774. 0: abc7
  775. 0: abc8
  776. 0: abc9
  777. /^a\Rb/bsr=unicode,utf
  778. a\nb
  779. 0: a\x{0a}b
  780. a\rb
  781. 0: a\x{0d}b
  782. a\r\nb
  783. 0: a\x{0d}\x{0a}b
  784. a\x0bb
  785. 0: a\x{0b}b
  786. a\x0cb
  787. 0: a\x{0c}b
  788. a\x{85}b
  789. 0: a\x{85}b
  790. a\x{2028}b
  791. 0: a\x{2028}b
  792. a\x{2029}b
  793. 0: a\x{2029}b
  794. \= Expect no match
  795. a\n\rb
  796. No match
  797. /^a\R*b/bsr=unicode,utf
  798. ab
  799. 0: ab
  800. a\nb
  801. 0: a\x{0a}b
  802. a\rb
  803. 0: a\x{0d}b
  804. a\r\nb
  805. 0: a\x{0d}\x{0a}b
  806. a\x0bb
  807. 0: a\x{0b}b
  808. a\x0c\x{2028}\x{2029}b
  809. 0: a\x{0c}\x{2028}\x{2029}b
  810. a\x{85}b
  811. 0: a\x{85}b
  812. a\n\rb
  813. 0: a\x{0a}\x{0d}b
  814. a\n\r\x{85}\x0cb
  815. 0: a\x{0a}\x{0d}\x{85}\x{0c}b
  816. /^a\R+b/bsr=unicode,utf
  817. a\nb
  818. 0: a\x{0a}b
  819. a\rb
  820. 0: a\x{0d}b
  821. a\r\nb
  822. 0: a\x{0d}\x{0a}b
  823. a\x0bb
  824. 0: a\x{0b}b
  825. a\x0c\x{2028}\x{2029}b
  826. 0: a\x{0c}\x{2028}\x{2029}b
  827. a\x{85}b
  828. 0: a\x{85}b
  829. a\n\rb
  830. 0: a\x{0a}\x{0d}b
  831. a\n\r\x{85}\x0cb
  832. 0: a\x{0a}\x{0d}\x{85}\x{0c}b
  833. \= Expect no match
  834. ab
  835. No match
  836. /^a\R{1,3}b/bsr=unicode,utf
  837. a\nb
  838. 0: a\x{0a}b
  839. a\n\rb
  840. 0: a\x{0a}\x{0d}b
  841. a\n\r\x{85}b
  842. 0: a\x{0a}\x{0d}\x{85}b
  843. a\r\n\r\nb
  844. 0: a\x{0d}\x{0a}\x{0d}\x{0a}b
  845. a\r\n\r\n\r\nb
  846. 0: a\x{0d}\x{0a}\x{0d}\x{0a}\x{0d}\x{0a}b
  847. a\n\r\n\rb
  848. 0: a\x{0a}\x{0d}\x{0a}\x{0d}b
  849. a\n\n\r\nb
  850. 0: a\x{0a}\x{0a}\x{0d}\x{0a}b
  851. \= Expect no match
  852. a\n\n\n\rb
  853. No match
  854. a\r
  855. No match
  856. /\h+\V?\v{3,4}/utf,no_auto_possess
  857. \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
  858. 0: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}\x{0d}
  859. 1: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}
  860. /\V?\v{3,4}/utf,no_auto_possess
  861. \x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
  862. 0: X\x{0a}\x{0b}\x{0c}\x{0d}
  863. 1: X\x{0a}\x{0b}\x{0c}
  864. /\h+\V?\v{3,4}/utf,no_auto_possess
  865. >\x09\x20\x{a0}X\x0a\x0a\x0a<
  866. 0: \x{09} \x{a0}X\x{0a}\x{0a}\x{0a}
  867. /\V?\v{3,4}/utf,no_auto_possess
  868. >\x09\x20\x{a0}X\x0a\x0a\x0a<
  869. 0: X\x{0a}\x{0a}\x{0a}
  870. /\H\h\V\v/utf
  871. X X\x0a
  872. 0: X X\x{0a}
  873. X\x09X\x0b
  874. 0: X\x{09}X\x{0b}
  875. \= Expect no match
  876. \x{a0} X\x0a
  877. No match
  878. /\H*\h+\V?\v{3,4}/utf,no_auto_possess
  879. \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
  880. 0: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}\x{0d}
  881. 1: \x{09} \x{a0}X\x{0a}\x{0b}\x{0c}
  882. \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
  883. 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}\x{0d}
  884. 1: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}
  885. \x09\x20\x{a0}\x0a\x0b\x0c
  886. 0: \x{09} \x{a0}\x{0a}\x{0b}\x{0c}
  887. \= Expect no match
  888. \x09\x20\x{a0}\x0a\x0b
  889. No match
  890. /\H\h\V\v/utf
  891. \x{3001}\x{3000}\x{2030}\x{2028}
  892. 0: \x{3001}\x{3000}\x{2030}\x{2028}
  893. X\x{180e}X\x{85}
  894. 0: X\x{180e}X\x{85}
  895. \= Expect no match
  896. \x{2009} X\x0a
  897. No match
  898. /\H*\h+\V?\v{3,4}/utf,no_auto_possess
  899. \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
  900. 0: \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x{0c}\x{0d}
  901. 1: \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x{0c}
  902. \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
  903. 0: \x{09}\x{205f}\x{a0}\x{0a}\x{2029}\x{0c}\x{2028}
  904. 1: \x{09}\x{205f}\x{a0}\x{0a}\x{2029}\x{0c}
  905. \x09\x20\x{202f}\x0a\x0b\x0c
  906. 0: \x{09} \x{202f}\x{0a}\x{0b}\x{0c}
  907. \= Expect no match
  908. \x09\x{200a}\x{a0}\x{2028}\x0b
  909. No match
  910. /a\Rb/I,bsr=anycrlf,utf
  911. Capture group count = 0
  912. Options: utf
  913. \R matches CR, LF, or CRLF
  914. First code unit = 'a'
  915. Last code unit = 'b'
  916. Subject length lower bound = 3
  917. a\rb
  918. 0: a\x{0d}b
  919. a\nb
  920. 0: a\x{0a}b
  921. a\r\nb
  922. 0: a\x{0d}\x{0a}b
  923. \= Expect no match
  924. a\x{85}b
  925. No match
  926. a\x0bb
  927. No match
  928. /a\Rb/I,bsr=unicode,utf
  929. Capture group count = 0
  930. Options: utf
  931. \R matches any Unicode newline
  932. First code unit = 'a'
  933. Last code unit = 'b'
  934. Subject length lower bound = 3
  935. a\rb
  936. 0: a\x{0d}b
  937. a\nb
  938. 0: a\x{0a}b
  939. a\r\nb
  940. 0: a\x{0d}\x{0a}b
  941. a\x{85}b
  942. 0: a\x{85}b
  943. a\x0bb
  944. 0: a\x{0b}b
  945. /a\R?b/I,bsr=anycrlf,utf
  946. Capture group count = 0
  947. Options: utf
  948. \R matches CR, LF, or CRLF
  949. First code unit = 'a'
  950. Last code unit = 'b'
  951. Subject length lower bound = 2
  952. a\rb
  953. 0: a\x{0d}b
  954. a\nb
  955. 0: a\x{0a}b
  956. a\r\nb
  957. 0: a\x{0d}\x{0a}b
  958. \= Expect no match
  959. a\x{85}b
  960. No match
  961. a\x0bb
  962. No match
  963. /a\R?b/I,bsr=unicode,utf
  964. Capture group count = 0
  965. Options: utf
  966. \R matches any Unicode newline
  967. First code unit = 'a'
  968. Last code unit = 'b'
  969. Subject length lower bound = 2
  970. a\rb
  971. 0: a\x{0d}b
  972. a\nb
  973. 0: a\x{0a}b
  974. a\r\nb
  975. 0: a\x{0d}\x{0a}b
  976. a\x{85}b
  977. 0: a\x{85}b
  978. a\x0bb
  979. 0: a\x{0b}b
  980. /X/newline=any,utf,firstline
  981. A\x{1ec5}ABCXYZ
  982. 0: X
  983. /abcd*/utf
  984. xxxxabcd\=ps
  985. 0: abcd
  986. xxxxabcd\=ph
  987. Partial match: abcd
  988. /abcd*/i,utf
  989. xxxxabcd\=ps
  990. 0: abcd
  991. xxxxabcd\=ph
  992. Partial match: abcd
  993. XXXXABCD\=ps
  994. 0: ABCD
  995. XXXXABCD\=ph
  996. Partial match: ABCD
  997. /abc\d*/utf
  998. xxxxabc1\=ps
  999. 0: abc1
  1000. xxxxabc1\=ph
  1001. Partial match: abc1
  1002. /abc[de]*/utf
  1003. xxxxabcde\=ps
  1004. 0: abcde
  1005. xxxxabcde\=ph
  1006. Partial match: abcde
  1007. /\bthe cat\b/utf
  1008. the cat\=ps
  1009. 0: the cat
  1010. the cat\=ph
  1011. Partial match: the cat
  1012. /./newline=crlf,utf
  1013. \r\=ps
  1014. 0: \x{0d}
  1015. \r\=ph
  1016. Partial match: \x{0d}
  1017. /.{2,3}/newline=crlf,utf
  1018. \r\=ps
  1019. Partial match: \x{0d}
  1020. \r\=ph
  1021. Partial match: \x{0d}
  1022. \r\r\=ps
  1023. 0: \x{0d}\x{0d}
  1024. \r\r\=ph
  1025. Partial match: \x{0d}\x{0d}
  1026. \r\r\r\=ps
  1027. 0: \x{0d}\x{0d}\x{0d}
  1028. \r\r\r\=ph
  1029. Partial match: \x{0d}\x{0d}\x{0d}
  1030. /.{2,3}?/newline=crlf,utf
  1031. \r\=ps
  1032. Partial match: \x{0d}
  1033. \r\=ph
  1034. Partial match: \x{0d}
  1035. \r\r\=ps
  1036. 0: \x{0d}\x{0d}
  1037. \r\r\=ph
  1038. Partial match: \x{0d}\x{0d}
  1039. \r\r\r\=ps
  1040. 0: \x{0d}\x{0d}\x{0d}
  1041. 1: \x{0d}\x{0d}
  1042. \r\r\r\=ph
  1043. Partial match: \x{0d}\x{0d}\x{0d}
  1044. /[^\x{100}]/utf
  1045. \x{100}\x{101}X
  1046. 0: \x{101}
  1047. /[^\x{100}]+/utf
  1048. \x{100}\x{101}X
  1049. 0: \x{101}X
  1050. /\pL\P{Nd}/utf
  1051. AB
  1052. 0: AB
  1053. \= Expect no match
  1054. A0
  1055. No match
  1056. 00
  1057. No match
  1058. /\X./utf
  1059. AB
  1060. 0: AB
  1061. A\x{300}BC
  1062. 0: A\x{300}B
  1063. A\x{300}\x{301}\x{302}BC
  1064. 0: A\x{300}\x{301}\x{302}B
  1065. \= Expect no match
  1066. \x{300}
  1067. No match
  1068. /\X\X/utf
  1069. ABC
  1070. 0: AB
  1071. A\x{300}B\x{300}\x{301}C
  1072. 0: A\x{300}B\x{300}\x{301}
  1073. A\x{300}\x{301}\x{302}BC
  1074. 0: A\x{300}\x{301}\x{302}B
  1075. \= Expect no match
  1076. \x{300}
  1077. No match
  1078. /^\pL+/utf
  1079. abcd
  1080. 0: abcd
  1081. a
  1082. 0: a
  1083. /^\PL+/utf
  1084. 1234
  1085. 0: 1234
  1086. =
  1087. 0: =
  1088. \= Expect no match
  1089. abcd
  1090. No match
  1091. /^\X+/utf
  1092. abcdA\x{300}\x{301}\x{302}
  1093. 0: abcdA\x{300}\x{301}\x{302}
  1094. A\x{300}\x{301}\x{302}
  1095. 0: A\x{300}\x{301}\x{302}
  1096. A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}
  1097. 0: A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}
  1098. a
  1099. 0: a
  1100. \x{300}\x{301}\x{302}
  1101. 0: \x{300}\x{301}\x{302}
  1102. /\X?abc/utf
  1103. abc
  1104. 0: abc
  1105. A\x{300}abc
  1106. 0: A\x{300}abc
  1107. A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
  1108. 0: A\x{300}abc
  1109. \x{300}abc
  1110. 0: \x{300}abc
  1111. /^\X?abc/utf
  1112. abc
  1113. 0: abc
  1114. A\x{300}abc
  1115. 0: A\x{300}abc
  1116. \x{300}abc
  1117. 0: \x{300}abc
  1118. \= Expect no match
  1119. A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
  1120. No match
  1121. /\X*abc/utf
  1122. abc
  1123. 0: abc
  1124. A\x{300}abc
  1125. 0: A\x{300}abc
  1126. A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
  1127. 0: A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abc
  1128. \x{300}abc
  1129. 0: \x{300}abc
  1130. /^\X*abc/utf
  1131. abc
  1132. 0: abc
  1133. A\x{300}abc
  1134. 0: A\x{300}abc
  1135. A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
  1136. 0: A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abc
  1137. \x{300}abc
  1138. 0: \x{300}abc
  1139. /^\pL?=./utf
  1140. A=b
  1141. 0: A=b
  1142. =c
  1143. 0: =c
  1144. \= Expect no match
  1145. 1=2
  1146. No match
  1147. AAAA=b
  1148. No match
  1149. /^\pL*=./utf
  1150. AAAA=b
  1151. 0: AAAA=b
  1152. =c
  1153. 0: =c
  1154. \= Expect no match
  1155. 1=2
  1156. No match
  1157. /^\X{2,3}X/utf
  1158. A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
  1159. 0: A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
  1160. A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
  1161. 0: A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
  1162. \= Expect no match
  1163. X
  1164. No match
  1165. A\x{300}\x{301}\x{302}X
  1166. No match
  1167. A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
  1168. No match
  1169. /^\pC\pL\pM\pN\pP\pS\pZ</utf
  1170. \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
  1171. 0: \x{7f}\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
  1172. \np\x{300}9!\$ <
  1173. 0: \x{0a}p\x{300}9!$ <
  1174. \= Expect no match
  1175. ap\x{300}9!\$ <
  1176. No match
  1177. /^\PC/utf
  1178. X
  1179. 0: X
  1180. \= Expect no match
  1181. \x7f
  1182. No match
  1183. /^\PL/utf
  1184. 9
  1185. 0: 9
  1186. \= Expect no match
  1187. \x{c0}
  1188. No match
  1189. /^\PM/utf
  1190. X
  1191. 0: X
  1192. \= Expect no match
  1193. \x{30f}
  1194. No match
  1195. /^\PN/utf
  1196. X
  1197. 0: X
  1198. \= Expect no match
  1199. \x{660}
  1200. No match
  1201. /^\PP/utf
  1202. X
  1203. 0: X
  1204. \= Expect no match
  1205. \x{66c}
  1206. No match
  1207. /^\PS/utf
  1208. X
  1209. 0: X
  1210. \= Expect no match
  1211. \x{f01}
  1212. No match
  1213. /^\PZ/utf
  1214. X
  1215. 0: X
  1216. \= Expect no match
  1217. \x{1680}
  1218. No match
  1219. /^\p{Cc}/utf
  1220. \x{017}
  1221. 0: \x{17}
  1222. \x{09f}
  1223. 0: \x{9f}
  1224. \= Expect no match
  1225. \x{0600}
  1226. No match
  1227. /^\p{Cf}/utf
  1228. \x{601}
  1229. 0: \x{601}
  1230. \x{180e}
  1231. 0: \x{180e}
  1232. \x{061c}
  1233. 0: \x{61c}
  1234. \x{2066}
  1235. 0: \x{2066}
  1236. \x{2067}
  1237. 0: \x{2067}
  1238. \x{2068}
  1239. 0: \x{2068}
  1240. \x{2069}
  1241. 0: \x{2069}
  1242. \= Expect no match
  1243. \x{09f}
  1244. No match
  1245. /^\p{Cn}/utf
  1246. \= Expect no match
  1247. \x{09f}
  1248. No match
  1249. /^\p{Co}/utf
  1250. \x{f8ff}
  1251. 0: \x{f8ff}
  1252. \= Expect no match
  1253. \x{09f}
  1254. No match
  1255. /^\p{Cs}/utf
  1256. \x{dfff}\=no_utf_check
  1257. 0: \x{dfff}
  1258. \= Expect no match
  1259. \x{09f}
  1260. No match
  1261. /^\p{Ll}/utf
  1262. a
  1263. 0: a
  1264. \= Expect no match
  1265. Z
  1266. No match
  1267. \x{e000}
  1268. No match
  1269. /^\p{Lm}/utf
  1270. \x{2b0}
  1271. 0: \x{2b0}
  1272. \= Expect no match
  1273. a
  1274. No match
  1275. /^\p{Lo}/utf
  1276. \x{1bb}
  1277. 0: \x{1bb}
  1278. \= Expect no match
  1279. a
  1280. No match
  1281. \x{2b0}
  1282. No match
  1283. /^\p{Lt}/utf
  1284. \x{1c5}
  1285. 0: \x{1c5}
  1286. \= Expect no match
  1287. a
  1288. No match
  1289. \x{2b0}
  1290. No match
  1291. /^\p{Lu}/utf
  1292. A
  1293. 0: A
  1294. \= Expect no match
  1295. \x{2b0}
  1296. No match
  1297. /^\p{Mc}/utf
  1298. \x{903}
  1299. 0: \x{903}
  1300. \= Expect no match
  1301. X
  1302. No match
  1303. \x{300}
  1304. No match
  1305. /^\p{Me}/utf
  1306. \x{488}
  1307. 0: \x{488}
  1308. \= Expect no match
  1309. X
  1310. No match
  1311. \x{903}
  1312. No match
  1313. \x{300}
  1314. No match
  1315. /^\p{Mn}/utf
  1316. \x{300}
  1317. 0: \x{300}
  1318. \x{1a1b}
  1319. 0: \x{1a1b}
  1320. \= Expect no match
  1321. X
  1322. No match
  1323. \x{903}
  1324. No match
  1325. /^\p{Nd}+/utf,no_auto_possess
  1326. 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
  1327. Matched, but offsets vector is too small to show all matches
  1328. 0: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}
  1329. 1: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}
  1330. 2: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}
  1331. 3: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}
  1332. 4: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}
  1333. 5: 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}
  1334. 6: 0123456789\x{660}\x{661}\x{662}\x{663}
  1335. 7: 0123456789\x{660}\x{661}\x{662}
  1336. 8: 0123456789\x{660}\x{661}
  1337. 9: 0123456789\x{660}
  1338. 10: 0123456789
  1339. 11: 012345678
  1340. 12: 01234567
  1341. 13: 0123456
  1342. 14: 012345
  1343. \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
  1344. 0: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}
  1345. 1: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}
  1346. 2: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}
  1347. 3: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}
  1348. 4: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}
  1349. 5: \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}
  1350. 6: \x{6f0}\x{6f1}\x{6f2}\x{6f3}
  1351. 7: \x{6f0}\x{6f1}\x{6f2}
  1352. 8: \x{6f0}\x{6f1}
  1353. 9: \x{6f0}
  1354. \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
  1355. 0: \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}
  1356. 1: \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}
  1357. 2: \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}
  1358. 3: \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}
  1359. 4: \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}
  1360. 5: \x{966}\x{967}\x{968}\x{969}\x{96a}
  1361. 6: \x{966}\x{967}\x{968}\x{969}
  1362. 7: \x{966}\x{967}\x{968}
  1363. 8: \x{966}\x{967}
  1364. 9: \x{966}
  1365. \= Expect no match
  1366. X
  1367. No match
  1368. /^\p{Nl}/utf
  1369. \x{16ee}
  1370. 0: \x{16ee}
  1371. \= Expect no match
  1372. X
  1373. No match
  1374. \x{966}
  1375. No match
  1376. /^\p{No}/utf
  1377. \x{b2}
  1378. 0: \x{b2}
  1379. \x{b3}
  1380. 0: \x{b3}
  1381. \= Expect no match
  1382. X
  1383. No match
  1384. \x{16ee}
  1385. No match
  1386. /^\p{Pc}/utf
  1387. \x5f
  1388. 0: _
  1389. \x{203f}
  1390. 0: \x{203f}
  1391. \= Expect no match
  1392. X
  1393. No match
  1394. -
  1395. No match
  1396. \x{58a}
  1397. No match
  1398. /^\p{Pd}/utf
  1399. -
  1400. 0: -
  1401. \x{58a}
  1402. 0: \x{58a}
  1403. \= Expect no match
  1404. X
  1405. No match
  1406. \x{203f}
  1407. No match
  1408. /^\p{Pe}/utf
  1409. )
  1410. 0: )
  1411. ]
  1412. 0: ]
  1413. }
  1414. 0: }
  1415. \x{f3b}
  1416. 0: \x{f3b}
  1417. \x{2309}
  1418. 0: \x{2309}
  1419. \x{230b}
  1420. 0: \x{230b}
  1421. \= Expect no match
  1422. X
  1423. No match
  1424. \x{203f}
  1425. No match
  1426. (
  1427. No match
  1428. [
  1429. No match
  1430. {
  1431. No match
  1432. \x{f3c}
  1433. No match
  1434. /^\p{Pf}/utf
  1435. \x{bb}
  1436. 0: \x{bb}
  1437. \x{2019}
  1438. 0: \x{2019}
  1439. \= Expect no match
  1440. X
  1441. No match
  1442. \x{203f}
  1443. No match
  1444. /^\p{Pi}/utf
  1445. \x{ab}
  1446. 0: \x{ab}
  1447. \x{2018}
  1448. 0: \x{2018}
  1449. \= Expect no match
  1450. X
  1451. No match
  1452. \x{203f}
  1453. No match
  1454. /^\p{Po}/utf
  1455. !
  1456. 0: !
  1457. \x{37e}
  1458. 0: \x{37e}
  1459. \= Expect no match
  1460. X
  1461. No match
  1462. \x{203f}
  1463. No match
  1464. /^\p{Ps}/utf
  1465. (
  1466. 0: (
  1467. [
  1468. 0: [
  1469. {
  1470. 0: {
  1471. \x{f3c}
  1472. 0: \x{f3c}
  1473. \x{2308}
  1474. 0: \x{2308}
  1475. \x{230a}
  1476. 0: \x{230a}
  1477. \= Expect no match
  1478. X
  1479. No match
  1480. )
  1481. No match
  1482. ]
  1483. No match
  1484. }
  1485. No match
  1486. \x{f3b}
  1487. No match
  1488. /^\p{Sc}+/utf
  1489. $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
  1490. 0: $\x{a2}\x{a3}\x{a4}\x{a5}
  1491. \x{9f2}
  1492. 0: \x{9f2}
  1493. \= Expect no match
  1494. X
  1495. No match
  1496. \x{2c2}
  1497. No match
  1498. /^\p{Sk}/utf
  1499. \x{2c2}
  1500. 0: \x{2c2}
  1501. \= Expect no match
  1502. X
  1503. No match
  1504. \x{9f2}
  1505. No match
  1506. /^\p{Sm}+/utf
  1507. +<|~\x{ac}\x{2044}
  1508. 0: +<|~\x{ac}\x{2044}
  1509. \= Expect no match
  1510. X
  1511. No match
  1512. \x{9f2}
  1513. No match
  1514. /^\p{So}/utf
  1515. \x{a6}
  1516. 0: \x{a6}
  1517. \x{482}
  1518. 0: \x{482}
  1519. \= Expect no match
  1520. X
  1521. No match
  1522. \x{9f2}
  1523. No match
  1524. /^\p{Zl}/utf
  1525. \x{2028}
  1526. 0: \x{2028}
  1527. \= Expect no match
  1528. X
  1529. No match
  1530. \x{2029}
  1531. No match
  1532. /^\p{Zp}/utf
  1533. \x{2029}
  1534. 0: \x{2029}
  1535. \= Expect no match
  1536. X
  1537. No match
  1538. \x{2028}
  1539. No match
  1540. /^\p{Zs}/utf
  1541. \ \
  1542. 0:
  1543. \x{a0}
  1544. 0: \x{a0}
  1545. \x{1680}
  1546. 0: \x{1680}
  1547. \x{2000}
  1548. 0: \x{2000}
  1549. \x{2001}
  1550. 0: \x{2001}
  1551. \= Expect no match
  1552. \x{2028}
  1553. No match
  1554. \x{200d}
  1555. No match
  1556. /\p{Nd}+(..)/utf
  1557. \x{660}\x{661}\x{662}ABC
  1558. 0: \x{660}\x{661}\x{662}AB
  1559. 1: \x{660}\x{661}\x{662}A
  1560. 2: \x{660}\x{661}\x{662}
  1561. /\p{Nd}+?(..)/utf
  1562. \x{660}\x{661}\x{662}ABC
  1563. 0: \x{660}\x{661}\x{662}AB
  1564. 1: \x{660}\x{661}\x{662}A
  1565. 2: \x{660}\x{661}\x{662}
  1566. /\p{Nd}{2,}(..)/utf
  1567. \x{660}\x{661}\x{662}ABC
  1568. 0: \x{660}\x{661}\x{662}AB
  1569. 1: \x{660}\x{661}\x{662}A
  1570. /\p{Nd}{2,}?(..)/utf
  1571. \x{660}\x{661}\x{662}ABC
  1572. 0: \x{660}\x{661}\x{662}AB
  1573. 1: \x{660}\x{661}\x{662}A
  1574. /\p{Nd}*(..)/utf
  1575. \x{660}\x{661}\x{662}ABC
  1576. 0: \x{660}\x{661}\x{662}AB
  1577. 1: \x{660}\x{661}\x{662}A
  1578. 2: \x{660}\x{661}\x{662}
  1579. 3: \x{660}\x{661}
  1580. /\p{Nd}*?(..)/utf
  1581. \x{660}\x{661}\x{662}ABC
  1582. 0: \x{660}\x{661}\x{662}AB
  1583. 1: \x{660}\x{661}\x{662}A
  1584. 2: \x{660}\x{661}\x{662}
  1585. 3: \x{660}\x{661}
  1586. /\p{Nd}{2}(..)/utf
  1587. \x{660}\x{661}\x{662}ABC
  1588. 0: \x{660}\x{661}\x{662}A
  1589. /\p{Nd}{2,3}(..)/utf
  1590. \x{660}\x{661}\x{662}ABC
  1591. 0: \x{660}\x{661}\x{662}AB
  1592. 1: \x{660}\x{661}\x{662}A
  1593. /\p{Nd}{2,3}?(..)/utf
  1594. \x{660}\x{661}\x{662}ABC
  1595. 0: \x{660}\x{661}\x{662}AB
  1596. 1: \x{660}\x{661}\x{662}A
  1597. /\p{Nd}?(..)/utf
  1598. \x{660}\x{661}\x{662}ABC
  1599. 0: \x{660}\x{661}\x{662}
  1600. 1: \x{660}\x{661}
  1601. /\p{Nd}??(..)/utf
  1602. \x{660}\x{661}\x{662}ABC
  1603. 0: \x{660}\x{661}\x{662}
  1604. 1: \x{660}\x{661}
  1605. /\p{Nd}*+(..)/utf
  1606. \x{660}\x{661}\x{662}ABC
  1607. 0: \x{660}\x{661}\x{662}AB
  1608. /\p{Nd}*+(...)/utf
  1609. \x{660}\x{661}\x{662}ABC
  1610. 0: \x{660}\x{661}\x{662}ABC
  1611. /\p{Nd}*+(....)/utf
  1612. \= Expect no match
  1613. \x{660}\x{661}\x{662}ABC
  1614. No match
  1615. /\p{Lu}/i,utf
  1616. A
  1617. 0: A
  1618. a\x{10a0}B
  1619. 0: \x{10a0}
  1620. \= Expect no match
  1621. a
  1622. No match
  1623. \x{1d00}
  1624. No match
  1625. /\p{^Lu}/i,utf
  1626. 1234
  1627. 0: 1
  1628. \= Expect no match
  1629. ABC
  1630. No match
  1631. /\P{Lu}/i,utf
  1632. 1234
  1633. 0: 1
  1634. \= Expect no match
  1635. ABC
  1636. No match
  1637. /(?<=A\p{Nd})XYZ/utf
  1638. A2XYZ
  1639. 0: XYZ
  1640. 123A5XYZPQR
  1641. 0: XYZ
  1642. ABA\x{660}XYZpqr
  1643. 0: XYZ
  1644. \= Expect no match
  1645. AXYZ
  1646. No match
  1647. XYZ
  1648. No match
  1649. /(?<!\pL)XYZ/utf
  1650. 1XYZ
  1651. 0: XYZ
  1652. AB=XYZ..
  1653. 0: XYZ
  1654. XYZ
  1655. 0: XYZ
  1656. \= Expect no match
  1657. WXYZ
  1658. No match
  1659. /[\p{Nd}]/utf
  1660. 1234
  1661. 0: 1
  1662. /[\p{Nd}+-]+/utf
  1663. 1234
  1664. 0: 1234
  1665. 12-34
  1666. 0: 12-34
  1667. 12+\x{661}-34
  1668. 0: 12+\x{661}-34
  1669. \= Expect no match
  1670. abcd
  1671. No match
  1672. /[\P{Nd}]+/utf
  1673. abcd
  1674. 0: abcd
  1675. \= Expect no match
  1676. 1234
  1677. No match
  1678. /\D+/utf,no_auto_possess
  1679. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1680. Matched, but offsets vector is too small to show all matches
  1681. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1682. 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1683. 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1684. 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1685. 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1686. 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1687. 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1688. 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1689. 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1690. 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1691. 10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1692. 11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1693. 12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1694. 13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1695. 14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1696. \= Expect no match
  1697. 11111111111111111111111111111111111111111111111111111111111111111111111
  1698. No match
  1699. /\P{Nd}+/utf,no_auto_possess
  1700. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1701. Matched, but offsets vector is too small to show all matches
  1702. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1703. 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1704. 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1705. 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1706. 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1707. 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1708. 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1709. 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1710. 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1711. 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1712. 10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1713. 11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1714. 12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1715. 13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1716. 14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1717. \= Expect no match
  1718. 11111111111111111111111111111111111111111111111111111111111111111111111
  1719. No match
  1720. /[\D]+/utf,no_auto_possess
  1721. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1722. Matched, but offsets vector is too small to show all matches
  1723. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1724. 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1725. 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1726. 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1727. 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1728. 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1729. 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1730. 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1731. 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1732. 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1733. 10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1734. 11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1735. 12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1736. 13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1737. 14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1738. \= Expect no match
  1739. 11111111111111111111111111111111111111111111111111111111111111111111111
  1740. No match
  1741. /[\P{Nd}]+/utf,no_auto_possess
  1742. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1743. Matched, but offsets vector is too small to show all matches
  1744. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1745. 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1746. 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1747. 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1748. 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1749. 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1750. 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1751. 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1752. 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1753. 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1754. 10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1755. 11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1756. 12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1757. 13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1758. 14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1759. \= Expect no match
  1760. 11111111111111111111111111111111111111111111111111111111111111111111111
  1761. No match
  1762. /[\D\P{Nd}]+/utf,no_auto_possess
  1763. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1764. Matched, but offsets vector is too small to show all matches
  1765. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1766. 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1767. 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1768. 3: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1769. 4: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1770. 5: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1771. 6: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1772. 7: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1773. 8: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1774. 9: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1775. 10: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1776. 11: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1777. 12: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1778. 13: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1779. 14: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  1780. \= Expect no match
  1781. 11111111111111111111111111111111111111111111111111111111111111111111111
  1782. No match
  1783. /\pL/utf
  1784. a
  1785. 0: a
  1786. A
  1787. 0: A
  1788. /\pL/i,utf
  1789. a
  1790. 0: a
  1791. A
  1792. 0: A
  1793. /\p{Lu}/utf
  1794. A
  1795. 0: A
  1796. aZ
  1797. 0: Z
  1798. \= Expect no match
  1799. abc
  1800. No match
  1801. /\p{Lu}/i,utf
  1802. A
  1803. 0: A
  1804. aZ
  1805. 0: Z
  1806. \= Expect no match
  1807. abc
  1808. No match
  1809. /\p{Ll}/utf
  1810. a
  1811. 0: a
  1812. Az
  1813. 0: z
  1814. \= Expect no match
  1815. ABC
  1816. No match
  1817. /\p{Ll}/i,utf
  1818. a
  1819. 0: a
  1820. Az
  1821. 0: z
  1822. \= Expect no match
  1823. ABC
  1824. No match
  1825. /^\x{c0}$/i,utf
  1826. \x{c0}
  1827. 0: \x{c0}
  1828. \x{e0}
  1829. 0: \x{e0}
  1830. /^\x{e0}$/i,utf
  1831. \x{c0}
  1832. 0: \x{c0}
  1833. \x{e0}
  1834. 0: \x{e0}
  1835. /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
  1836. A\x{391}\x{10427}\x{ff3a}\x{1fb0}
  1837. 0: A\x{391}\x{10427}\x{ff3a}\x{1fb0}
  1838. \= Expect no match
  1839. a\x{391}\x{10427}\x{ff3a}\x{1fb0}
  1840. No match
  1841. A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
  1842. No match
  1843. A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
  1844. No match
  1845. A\x{391}\x{10427}\x{ff5a}\x{1fb0}
  1846. No match
  1847. A\x{391}\x{10427}\x{ff3a}\x{1fb8}
  1848. No match
  1849. /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
  1850. A\x{391}\x{10427}\x{ff3a}\x{1fb0}
  1851. 0: A\x{391}\x{10427}\x{ff3a}\x{1fb0}
  1852. a\x{391}\x{10427}\x{ff3a}\x{1fb0}
  1853. 0: a\x{391}\x{10427}\x{ff3a}\x{1fb0}
  1854. A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
  1855. 0: A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
  1856. A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
  1857. 0: A\x{391}\x{1044f}\x{ff3a}\x{1fb0}
  1858. A\x{391}\x{10427}\x{ff5a}\x{1fb0}
  1859. 0: A\x{391}\x{10427}\x{ff5a}\x{1fb0}
  1860. A\x{391}\x{10427}\x{ff3a}\x{1fb8}
  1861. 0: A\x{391}\x{10427}\x{ff3a}\x{1fb8}
  1862. /\x{391}+/i,utf
  1863. \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
  1864. 0: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
  1865. /\x{391}{3,5}(.)/i,utf
  1866. \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
  1867. 0: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
  1868. 1: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
  1869. 2: \x{391}\x{3b1}\x{3b1}\x{3b1}
  1870. /\x{391}{3,5}?(.)/i,utf
  1871. \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
  1872. 0: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
  1873. 1: \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
  1874. 2: \x{391}\x{3b1}\x{3b1}\x{3b1}
  1875. /[\x{391}\x{ff3a}]/i,utf
  1876. \x{391}
  1877. 0: \x{391}
  1878. \x{ff3a}
  1879. 0: \x{ff3a}
  1880. \x{3b1}
  1881. 0: \x{3b1}
  1882. \x{ff5a}
  1883. 0: \x{ff5a}
  1884. /[\x{c0}\x{391}]/i,utf
  1885. \x{c0}
  1886. 0: \x{c0}
  1887. \x{e0}
  1888. 0: \x{e0}
  1889. /[\x{105}-\x{109}]/i,utf
  1890. \x{104}
  1891. 0: \x{104}
  1892. \x{105}
  1893. 0: \x{105}
  1894. \x{109}
  1895. 0: \x{109}
  1896. \= Expect no match
  1897. \x{100}
  1898. No match
  1899. \x{10a}
  1900. No match
  1901. /[z-\x{100}]/i,utf
  1902. Z
  1903. 0: Z
  1904. z
  1905. 0: z
  1906. \x{39c}
  1907. 0: \x{39c}
  1908. \x{178}
  1909. 0: \x{178}
  1910. |
  1911. 0: |
  1912. \x{80}
  1913. 0: \x{80}
  1914. \x{ff}
  1915. 0: \x{ff}
  1916. \x{100}
  1917. 0: \x{100}
  1918. \x{101}
  1919. 0: \x{101}
  1920. \= Expect no match
  1921. \x{102}
  1922. No match
  1923. Y
  1924. No match
  1925. y
  1926. No match
  1927. /[z-\x{100}]/i,utf
  1928. /^\X/utf
  1929. A
  1930. 0: A
  1931. A\x{300}BC
  1932. 0: A\x{300}
  1933. A\x{300}\x{301}\x{302}BC
  1934. 0: A\x{300}\x{301}\x{302}
  1935. \x{300}
  1936. 0: \x{300}
  1937. /^(\X*)C/utf
  1938. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
  1939. 0: A\x{300}\x{301}\x{302}BC
  1940. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1941. 0: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1942. 1: A\x{300}\x{301}\x{302}BC
  1943. /^(\X*?)C/utf
  1944. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
  1945. 0: A\x{300}\x{301}\x{302}BC
  1946. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1947. 0: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1948. 1: A\x{300}\x{301}\x{302}BC
  1949. /^(\X*)(.)/utf
  1950. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
  1951. 0: A\x{300}\x{301}\x{302}BCA
  1952. 1: A\x{300}\x{301}\x{302}BC
  1953. 2: A\x{300}\x{301}\x{302}B
  1954. 3: A
  1955. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1956. 0: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1957. 1: A\x{300}\x{301}\x{302}BCA
  1958. 2: A\x{300}\x{301}\x{302}BC
  1959. 3: A\x{300}\x{301}\x{302}B
  1960. 4: A
  1961. /^(\X*?)(.)/utf
  1962. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
  1963. 0: A\x{300}\x{301}\x{302}BCA
  1964. 1: A\x{300}\x{301}\x{302}BC
  1965. 2: A\x{300}\x{301}\x{302}B
  1966. 3: A
  1967. A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1968. 0: A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
  1969. 1: A\x{300}\x{301}\x{302}BCA
  1970. 2: A\x{300}\x{301}\x{302}BC
  1971. 3: A\x{300}\x{301}\x{302}B
  1972. 4: A
  1973. /^\X(.)/utf
  1974. \= Expect no match
  1975. A\x{300}\x{301}\x{302}
  1976. No match
  1977. /^\X{2,3}(.)/utf
  1978. A\x{300}\x{301}B\x{300}X
  1979. 0: A\x{300}\x{301}B\x{300}X
  1980. A\x{300}\x{301}B\x{300}C\x{300}\x{301}
  1981. 0: A\x{300}\x{301}B\x{300}C
  1982. A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
  1983. 0: A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
  1984. 1: A\x{300}\x{301}B\x{300}C
  1985. A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
  1986. 0: A\x{300}\x{301}B\x{300}C\x{300}\x{301}D
  1987. 1: A\x{300}\x{301}B\x{300}C
  1988. /^\X{2,3}?(.)/utf
  1989. A\x{300}\x{301}B\x{300}X
  1990. 0: A\x{300}\x{301}B\x{300}X
  1991. A\x{300}\x{301}B\x{300}C\x{300}\x{301}
  1992. 0: A\x{300}\x{301}B\x{300}C
  1993. A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
  1994. 0: A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
  1995. 1: A\x{300}\x{301}B\x{300}C
  1996. A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
  1997. 0: A\x{300}\x{301}B\x{300}C\x{300}\x{301}D
  1998. 1: A\x{300}\x{301}B\x{300}C
  1999. /^\pN{2,3}X/
  2000. 12X
  2001. 0: 12X
  2002. 123X
  2003. 0: 123X
  2004. \= Expect no match
  2005. X
  2006. No match
  2007. 1X
  2008. No match
  2009. 1234X
  2010. No match
  2011. /\x{100}/i,utf
  2012. \x{100}
  2013. 0: \x{100}
  2014. \x{101}
  2015. 0: \x{101}
  2016. /^\p{Han}+/utf
  2017. \x{2e81}\x{3007}\x{2f804}\x{31a0}
  2018. 0: \x{2e81}\x{3007}\x{2f804}
  2019. \= Expect no match
  2020. \x{2e7f}
  2021. No match
  2022. /^\P{Katakana}+/utf
  2023. \x{3105}
  2024. 0: \x{3105}
  2025. \= Expect no match
  2026. \x{30ff}
  2027. No match
  2028. /^[\p{Arabic}]/utf
  2029. \x{06e9}
  2030. 0: \x{6e9}
  2031. \x{060b}
  2032. 0: \x{60b}
  2033. \= Expect no match
  2034. X\x{06e9}
  2035. No match
  2036. /^[\P{Yi}]/utf
  2037. \x{2f800}
  2038. 0: \x{2f800}
  2039. \= Expect no match
  2040. \x{a014}
  2041. No match
  2042. \x{a4c6}
  2043. No match
  2044. /^\p{Any}X/utf
  2045. AXYZ
  2046. 0: AX
  2047. \x{1234}XYZ
  2048. 0: \x{1234}X
  2049. \= Expect no match
  2050. X
  2051. No match
  2052. /^\P{Any}X/utf
  2053. \= Expect no match
  2054. AX
  2055. No match
  2056. /^\p{Any}?X/utf
  2057. XYZ
  2058. 0: X
  2059. AXYZ
  2060. 0: AX
  2061. \x{1234}XYZ
  2062. 0: \x{1234}X
  2063. \= Expect no match
  2064. ABXYZ
  2065. No match
  2066. /^\P{Any}?X/utf
  2067. XYZ
  2068. 0: X
  2069. \= Expect no match
  2070. AXYZ
  2071. No match
  2072. \x{1234}XYZ
  2073. No match
  2074. ABXYZ
  2075. No match
  2076. /^\p{Any}+X/utf
  2077. AXYZ
  2078. 0: AX
  2079. \x{1234}XYZ
  2080. 0: \x{1234}X
  2081. A\x{1234}XYZ
  2082. 0: A\x{1234}X
  2083. \= Expect no match
  2084. XYZ
  2085. No match
  2086. /^\P{Any}+X/utf
  2087. \= Expect no match
  2088. AXYZ
  2089. No match
  2090. \x{1234}XYZ
  2091. No match
  2092. A\x{1234}XYZ
  2093. No match
  2094. XYZ
  2095. No match
  2096. /^\p{Any}*X/utf
  2097. XYZ
  2098. 0: X
  2099. AXYZ
  2100. 0: AX
  2101. \x{1234}XYZ
  2102. 0: \x{1234}X
  2103. A\x{1234}XYZ
  2104. 0: A\x{1234}X
  2105. /^\P{Any}*X/utf
  2106. XYZ
  2107. 0: X
  2108. \= Expect no match
  2109. AXYZ
  2110. No match
  2111. \x{1234}XYZ
  2112. No match
  2113. A\x{1234}XYZ
  2114. No match
  2115. /^[\p{Any}]X/utf
  2116. AXYZ
  2117. 0: AX
  2118. \x{1234}XYZ
  2119. 0: \x{1234}X
  2120. \= Expect no match
  2121. X
  2122. No match
  2123. /^[\P{Any}]X/utf
  2124. \= Expect no match
  2125. AX
  2126. No match
  2127. /^[\p{Any}]?X/utf
  2128. XYZ
  2129. 0: X
  2130. AXYZ
  2131. 0: AX
  2132. \x{1234}XYZ
  2133. 0: \x{1234}X
  2134. \= Expect no match
  2135. ABXYZ
  2136. No match
  2137. /^[\P{Any}]?X/utf
  2138. XYZ
  2139. 0: X
  2140. \= Expect no match
  2141. AXYZ
  2142. No match
  2143. \x{1234}XYZ
  2144. No match
  2145. ABXYZ
  2146. No match
  2147. /^[\p{Any}]+X/utf
  2148. AXYZ
  2149. 0: AX
  2150. \x{1234}XYZ
  2151. 0: \x{1234}X
  2152. A\x{1234}XYZ
  2153. 0: A\x{1234}X
  2154. \= Expect no match
  2155. XYZ
  2156. No match
  2157. /^[\P{Any}]+X/utf
  2158. \= Expect no match
  2159. AXYZ
  2160. No match
  2161. \x{1234}XYZ
  2162. No match
  2163. A\x{1234}XYZ
  2164. No match
  2165. XYZ
  2166. No match
  2167. /^[\p{Any}]*X/utf
  2168. XYZ
  2169. 0: X
  2170. AXYZ
  2171. 0: AX
  2172. \x{1234}XYZ
  2173. 0: \x{1234}X
  2174. A\x{1234}XYZ
  2175. 0: A\x{1234}X
  2176. /^[\P{Any}]*X/utf
  2177. XYZ
  2178. 0: X
  2179. \= Expect no match
  2180. AXYZ
  2181. No match
  2182. \x{1234}XYZ
  2183. No match
  2184. A\x{1234}XYZ
  2185. No match
  2186. /^\p{Any}{3,5}?/utf
  2187. abcdefgh
  2188. 0: abcde
  2189. 1: abcd
  2190. 2: abc
  2191. \x{1234}\n\r\x{3456}xyz
  2192. 0: \x{1234}\x{0a}\x{0d}\x{3456}x
  2193. 1: \x{1234}\x{0a}\x{0d}\x{3456}
  2194. 2: \x{1234}\x{0a}\x{0d}
  2195. /^\p{Any}{3,5}/utf
  2196. abcdefgh
  2197. 0: abcde
  2198. \x{1234}\n\r\x{3456}xyz
  2199. 0: \x{1234}\x{0a}\x{0d}\x{3456}x
  2200. /^\P{Any}{3,5}?/utf
  2201. \= Expect no match
  2202. abcdefgh
  2203. No match
  2204. \x{1234}\n\r\x{3456}xyz
  2205. No match
  2206. /^\p{L&}X/utf
  2207. AXY
  2208. 0: AX
  2209. aXY
  2210. 0: aX
  2211. \x{1c5}XY
  2212. 0: \x{1c5}X
  2213. \= Expect no match
  2214. \x{1bb}XY
  2215. No match
  2216. \x{2b0}XY
  2217. No match
  2218. !XY
  2219. No match
  2220. /^[\p{L&}]X/utf
  2221. AXY
  2222. 0: AX
  2223. aXY
  2224. 0: aX
  2225. \x{1c5}XY
  2226. 0: \x{1c5}X
  2227. \= Expect no match
  2228. \x{1bb}XY
  2229. No match
  2230. \x{2b0}XY
  2231. No match
  2232. !XY
  2233. No match
  2234. /^\p{L&}+X/utf
  2235. AXY
  2236. 0: AX
  2237. aXY
  2238. 0: aX
  2239. AbcdeXyz
  2240. 0: AbcdeX
  2241. \x{1c5}AbXY
  2242. 0: \x{1c5}AbX
  2243. abcDEXypqreXlmn
  2244. 0: abcDEXypqreX
  2245. 1: abcDEX
  2246. \= Expect no match
  2247. \x{1bb}XY
  2248. No match
  2249. \x{2b0}XY
  2250. No match
  2251. !XY
  2252. No match
  2253. /^[\p{L&}]+X/utf
  2254. AXY
  2255. 0: AX
  2256. aXY
  2257. 0: aX
  2258. AbcdeXyz
  2259. 0: AbcdeX
  2260. \x{1c5}AbXY
  2261. 0: \x{1c5}AbX
  2262. abcDEXypqreXlmn
  2263. 0: abcDEXypqreX
  2264. 1: abcDEX
  2265. \= Expect no match
  2266. \x{1bb}XY
  2267. No match
  2268. \x{2b0}XY
  2269. No match
  2270. !XY
  2271. No match
  2272. /^\p{L&}+?X/utf
  2273. AXY
  2274. 0: AX
  2275. aXY
  2276. 0: aX
  2277. AbcdeXyz
  2278. 0: AbcdeX
  2279. \x{1c5}AbXY
  2280. 0: \x{1c5}AbX
  2281. abcDEXypqreXlmn
  2282. 0: abcDEXypqreX
  2283. 1: abcDEX
  2284. \= Expect no match
  2285. \x{1bb}XY
  2286. No match
  2287. \x{2b0}XY
  2288. No match
  2289. !XY
  2290. No match
  2291. /^[\p{L&}]+?X/utf
  2292. AXY
  2293. 0: AX
  2294. aXY
  2295. 0: aX
  2296. AbcdeXyz
  2297. 0: AbcdeX
  2298. \x{1c5}AbXY
  2299. 0: \x{1c5}AbX
  2300. abcDEXypqreXlmn
  2301. 0: abcDEXypqreX
  2302. 1: abcDEX
  2303. \= Expect no match
  2304. \x{1bb}XY
  2305. No match
  2306. \x{2b0}XY
  2307. No match
  2308. !XY
  2309. No match
  2310. /^\P{L&}X/utf
  2311. !XY
  2312. 0: !X
  2313. \x{1bb}XY
  2314. 0: \x{1bb}X
  2315. \x{2b0}XY
  2316. 0: \x{2b0}X
  2317. \= Expect no match
  2318. \x{1c5}XY
  2319. No match
  2320. AXY
  2321. No match
  2322. /^[\P{L&}]X/utf
  2323. !XY
  2324. 0: !X
  2325. \x{1bb}XY
  2326. 0: \x{1bb}X
  2327. \x{2b0}XY
  2328. 0: \x{2b0}X
  2329. \= Expect no match
  2330. \x{1c5}XY
  2331. No match
  2332. AXY
  2333. No match
  2334. /^\x{023a}+?(\x{0130}+)/i,utf
  2335. \x{023a}\x{2c65}\x{0130}
  2336. 0: \x{23a}\x{2c65}\x{130}
  2337. /^\x{023a}+([^X])/i,utf
  2338. \x{023a}\x{2c65}X
  2339. 0: \x{23a}\x{2c65}
  2340. /\x{c0}+\x{116}+/i,utf
  2341. \x{c0}\x{e0}\x{116}\x{117}
  2342. 0: \x{c0}\x{e0}\x{116}\x{117}
  2343. /[\x{c0}\x{116}]+/i,utf
  2344. \x{c0}\x{e0}\x{116}\x{117}
  2345. 0: \x{c0}\x{e0}\x{116}\x{117}
  2346. # Check property support in non-UTF-8 mode
  2347. /\p{L}{4}/
  2348. 123abcdefg
  2349. 0: abcd
  2350. 123abc\xc4\xc5zz
  2351. 0: abc\xc4
  2352. /\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
  2353. \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
  2354. 0: \x{102a4}\x{aa52}\x{a91d}\x{1c46}\x{10283}\x{1092e}\x{1c6b}\x{a93b}\x{a8bf}\x{1ba0}\x{a50a}
  2355. /\x{a77d}\x{1d79}/i,utf
  2356. \x{a77d}\x{1d79}
  2357. 0: \x{a77d}\x{1d79}
  2358. \x{1d79}\x{a77d}
  2359. 0: \x{1d79}\x{a77d}
  2360. /\x{a77d}\x{1d79}/utf
  2361. \x{a77d}\x{1d79}
  2362. 0: \x{a77d}\x{1d79}
  2363. \= Expect no match
  2364. \x{1d79}\x{a77d}
  2365. No match
  2366. /^\p{Xan}/utf
  2367. ABCD
  2368. 0: A
  2369. 1234
  2370. 0: 1
  2371. \x{6ca}
  2372. 0: \x{6ca}
  2373. \x{a6c}
  2374. 0: \x{a6c}
  2375. \x{10a7}
  2376. 0: \x{10a7}
  2377. \= Expect no match
  2378. _ABC
  2379. No match
  2380. /^\p{Xan}+/utf
  2381. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2382. 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
  2383. \= Expect no match
  2384. _ABC
  2385. No match
  2386. /^\p{Xan}*/utf
  2387. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2388. 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
  2389. /^\p{Xan}{2,9}/utf
  2390. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2391. 0: ABCD1234\x{6ca}
  2392. /^[\p{Xan}]/utf
  2393. ABCD1234_
  2394. 0: A
  2395. 1234abcd_
  2396. 0: 1
  2397. \x{6ca}
  2398. 0: \x{6ca}
  2399. \x{a6c}
  2400. 0: \x{a6c}
  2401. \x{10a7}
  2402. 0: \x{10a7}
  2403. \= Expect no match
  2404. _ABC
  2405. No match
  2406. /^[\p{Xan}]+/utf
  2407. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2408. 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}
  2409. \= Expect no match
  2410. _ABC
  2411. No match
  2412. /^>\p{Xsp}/utf
  2413. >\x{1680}\x{2028}\x{0b}
  2414. 0: >\x{1680}
  2415. \= Expect no match
  2416. \x{0b}
  2417. No match
  2418. /^>\p{Xsp}+/utf,no_auto_possess
  2419. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2420. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2421. 1: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
  2422. 2: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}
  2423. 3: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}
  2424. 4: > \x{09}\x{0a}\x{0c}\x{0d}
  2425. 5: > \x{09}\x{0a}\x{0c}
  2426. 6: > \x{09}\x{0a}
  2427. 7: > \x{09}
  2428. 8: >
  2429. /^>\p{Xsp}*/utf,no_auto_possess
  2430. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2431. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2432. 1: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
  2433. 2: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}
  2434. 3: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}
  2435. 4: > \x{09}\x{0a}\x{0c}\x{0d}
  2436. 5: > \x{09}\x{0a}\x{0c}
  2437. 6: > \x{09}\x{0a}
  2438. 7: > \x{09}
  2439. 8: >
  2440. 9: >
  2441. /^>\p{Xsp}{2,9}/utf,no_auto_possess
  2442. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2443. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2444. 1: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
  2445. 2: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}
  2446. 3: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}
  2447. 4: > \x{09}\x{0a}\x{0c}\x{0d}
  2448. 5: > \x{09}\x{0a}\x{0c}
  2449. 6: > \x{09}\x{0a}
  2450. 7: > \x{09}
  2451. /^>[\p{Xsp}]/utf,no_auto_possess
  2452. >\x{2028}\x{0b}
  2453. 0: >\x{2028}
  2454. /^>[\p{Xsp}]+/utf,no_auto_possess
  2455. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2456. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2457. 1: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
  2458. 2: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}
  2459. 3: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}
  2460. 4: > \x{09}\x{0a}\x{0c}\x{0d}
  2461. 5: > \x{09}\x{0a}\x{0c}
  2462. 6: > \x{09}\x{0a}
  2463. 7: > \x{09}
  2464. 8: >
  2465. /^>\p{Xps}/utf
  2466. >\x{1680}\x{2028}\x{0b}
  2467. 0: >\x{1680}
  2468. >\x{a0}
  2469. 0: >\x{a0}
  2470. \= Expect no match
  2471. \x{0b}
  2472. No match
  2473. /^>\p{Xps}+/utf
  2474. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2475. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2476. /^>\p{Xps}+?/utf
  2477. >\x{1680}\x{2028}\x{0b}
  2478. 0: >\x{1680}\x{2028}\x{0b}
  2479. 1: >\x{1680}\x{2028}
  2480. 2: >\x{1680}
  2481. /^>\p{Xps}*/utf
  2482. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2483. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2484. /^>\p{Xps}{2,9}/utf
  2485. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2486. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2487. /^>\p{Xps}{2,9}?/utf
  2488. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2489. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2490. 1: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}
  2491. 2: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}
  2492. 3: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}
  2493. 4: > \x{09}\x{0a}\x{0c}\x{0d}
  2494. 5: > \x{09}\x{0a}\x{0c}
  2495. 6: > \x{09}\x{0a}
  2496. 7: > \x{09}
  2497. /^>[\p{Xps}]/utf
  2498. >\x{2028}\x{0b}
  2499. 0: >\x{2028}
  2500. /^>[\p{Xps}]+/utf
  2501. > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2502. 0: > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
  2503. /^\p{Xwd}/utf
  2504. ABCD
  2505. 0: A
  2506. 1234
  2507. 0: 1
  2508. \x{6ca}
  2509. 0: \x{6ca}
  2510. \x{a6c}
  2511. 0: \x{a6c}
  2512. \x{10a7}
  2513. 0: \x{10a7}
  2514. _ABC
  2515. 0: _
  2516. \= Expect no match
  2517. []
  2518. No match
  2519. /^\p{Xwd}+/utf
  2520. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2521. 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2522. /^\p{Xwd}*/utf
  2523. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2524. 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2525. /^\p{Xwd}{2,9}/utf
  2526. A_12\x{6ca}\x{a6c}\x{10a7}
  2527. 0: A_12\x{6ca}\x{a6c}\x{10a7}
  2528. /^[\p{Xwd}]/utf
  2529. ABCD1234_
  2530. 0: A
  2531. 1234abcd_
  2532. 0: 1
  2533. \x{6ca}
  2534. 0: \x{6ca}
  2535. \x{a6c}
  2536. 0: \x{a6c}
  2537. \x{10a7}
  2538. 0: \x{10a7}
  2539. _ABC
  2540. 0: _
  2541. \= Expect no match
  2542. []
  2543. No match
  2544. /^[\p{Xwd}]+/utf
  2545. ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2546. 0: ABCD1234\x{6ca}\x{a6c}\x{10a7}_
  2547. # Unicode properties for \b and \B
  2548. /\b...\B/utf,ucp
  2549. abc_
  2550. 0: abc
  2551. \x{37e}abc\x{376}
  2552. 0: abc
  2553. \x{37e}\x{376}\x{371}\x{393}\x{394}
  2554. 0: \x{376}\x{371}\x{393}
  2555. !\x{c0}++\x{c1}\x{c2}
  2556. 0: ++\x{c1}
  2557. !\x{c0}+++++
  2558. 0: \x{c0}++
  2559. # Without PCRE_UCP, non-ASCII always fail, even if < 256
  2560. /\b...\B/utf
  2561. abc_
  2562. 0: abc
  2563. \= Expect no match
  2564. \x{37e}abc\x{376}
  2565. No match
  2566. \x{37e}\x{376}\x{371}\x{393}\x{394}
  2567. No match
  2568. !\x{c0}++\x{c1}\x{c2}
  2569. No match
  2570. !\x{c0}+++++
  2571. No match
  2572. # With PCRE_UCP, non-UTF8 chars that are < 256 still check properties
  2573. /\b...\B/ucp
  2574. abc_
  2575. 0: abc
  2576. !\x{c0}++\x{c1}\x{c2}
  2577. 0: ++\xc1
  2578. !\x{c0}+++++
  2579. 0: \xc0++
  2580. # Caseless single negated characters > 127 need UCP support
  2581. /[^\x{100}]/i,utf
  2582. \x{100}\x{101}X
  2583. 0: X
  2584. /[^\x{100}]+/i,utf
  2585. \x{100}\x{101}XX
  2586. 0: XX
  2587. /^\X/utf
  2588. A\=ps
  2589. 0: A
  2590. A\=ph
  2591. Partial match: A
  2592. A\x{300}\x{301}\=ps
  2593. 0: A\x{300}\x{301}
  2594. A\x{300}\x{301}\=ph
  2595. Partial match: A\x{300}\x{301}
  2596. A\x{301}\=ps
  2597. 0: A\x{301}
  2598. A\x{301}\=ph
  2599. Partial match: A\x{301}
  2600. /^\X{2,3}/utf
  2601. A\=ps
  2602. Partial match: A
  2603. A\=ph
  2604. Partial match: A
  2605. AA\=ps
  2606. 0: AA
  2607. AA\=ph
  2608. Partial match: AA
  2609. A\x{300}\x{301}\=ps
  2610. Partial match: A\x{300}\x{301}
  2611. A\x{300}\x{301}\=ph
  2612. Partial match: A\x{300}\x{301}
  2613. A\x{300}\x{301}A\x{300}\x{301}\=ps
  2614. 0: A\x{300}\x{301}A\x{300}\x{301}
  2615. A\x{300}\x{301}A\x{300}\x{301}\=ph
  2616. Partial match: A\x{300}\x{301}A\x{300}\x{301}
  2617. /^\X{2}/utf
  2618. AA\=ps
  2619. 0: AA
  2620. AA\=ph
  2621. Partial match: AA
  2622. A\x{300}\x{301}A\x{300}\x{301}\=ps
  2623. 0: A\x{300}\x{301}A\x{300}\x{301}
  2624. A\x{300}\x{301}A\x{300}\x{301}\=ph
  2625. Partial match: A\x{300}\x{301}A\x{300}\x{301}
  2626. /^\X+/utf
  2627. AA\=ps
  2628. 0: AA
  2629. AA\=ph
  2630. Partial match: AA
  2631. /^\X+?Z/utf
  2632. AA\=ps
  2633. Partial match: AA
  2634. AA\=ph
  2635. Partial match: AA
  2636. # These are tests for extended grapheme clusters
  2637. /^\X/utf,aftertext
  2638. G\x{34e}\x{34e}X
  2639. 0: G\x{34e}\x{34e}
  2640. 0+ X
  2641. \x{34e}\x{34e}X
  2642. 0: \x{34e}\x{34e}
  2643. 0+ X
  2644. \x04X
  2645. 0: \x{04}
  2646. 0+ X
  2647. \x{1100}X
  2648. 0: \x{1100}
  2649. 0+ X
  2650. \x{1100}\x{34e}X
  2651. 0: \x{1100}\x{34e}
  2652. 0+ X
  2653. \x{1b04}\x{1b04}X
  2654. 0: \x{1b04}\x{1b04}
  2655. 0+ X
  2656. \= These match up to the roman letters
  2657. \x{1111}\x{1111}L,L
  2658. 0: \x{1111}\x{1111}
  2659. 0+ L,L
  2660. \x{1111}\x{1111}\x{1169}L,L,V
  2661. 0: \x{1111}\x{1111}\x{1169}
  2662. 0+ L,L,V
  2663. \x{1111}\x{ae4c}L, LV
  2664. 0: \x{1111}\x{ae4c}
  2665. 0+ L, LV
  2666. \x{1111}\x{ad89}L, LVT
  2667. 0: \x{1111}\x{ad89}
  2668. 0+ L, LVT
  2669. \x{1111}\x{ae4c}\x{1169}L, LV, V
  2670. 0: \x{1111}\x{ae4c}\x{1169}
  2671. 0+ L, LV, V
  2672. \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
  2673. 0: \x{1111}\x{ae4c}\x{1169}\x{1169}
  2674. 0+ L, LV, V, V
  2675. \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
  2676. 0: \x{1111}\x{ae4c}\x{1169}\x{11fe}
  2677. 0+ L, LV, V, T
  2678. \x{1111}\x{ad89}\x{11fe}L, LVT, T
  2679. 0: \x{1111}\x{ad89}\x{11fe}
  2680. 0+ L, LVT, T
  2681. \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
  2682. 0: \x{1111}\x{ad89}\x{11fe}\x{11fe}
  2683. 0+ L, LVT, T, T
  2684. \x{ad89}\x{11fe}\x{11fe}LVT, T, T
  2685. 0: \x{ad89}\x{11fe}\x{11fe}
  2686. 0+ LVT, T, T
  2687. \= These match just the first codepoint (invalid sequence)
  2688. \x{1111}\x{11fe}L, T
  2689. 0: \x{1111}
  2690. 0+ \x{11fe}L, T
  2691. \x{ae4c}\x{1111}LV, L
  2692. 0: \x{ae4c}
  2693. 0+ \x{1111}LV, L
  2694. \x{ae4c}\x{ae4c}LV, LV
  2695. 0: \x{ae4c}
  2696. 0+ \x{ae4c}LV, LV
  2697. \x{ae4c}\x{ad89}LV, LVT
  2698. 0: \x{ae4c}
  2699. 0+ \x{ad89}LV, LVT
  2700. \x{1169}\x{1111}V, L
  2701. 0: \x{1169}
  2702. 0+ \x{1111}V, L
  2703. \x{1169}\x{ae4c}V, LV
  2704. 0: \x{1169}
  2705. 0+ \x{ae4c}V, LV
  2706. \x{1169}\x{ad89}V, LVT
  2707. 0: \x{1169}
  2708. 0+ \x{ad89}V, LVT
  2709. \x{ad89}\x{1111}LVT, L
  2710. 0: \x{ad89}
  2711. 0+ \x{1111}LVT, L
  2712. \x{ad89}\x{1169}LVT, V
  2713. 0: \x{ad89}
  2714. 0+ \x{1169}LVT, V
  2715. \x{ad89}\x{ae4c}LVT, LV
  2716. 0: \x{ad89}
  2717. 0+ \x{ae4c}LVT, LV
  2718. \x{ad89}\x{ad89}LVT, LVT
  2719. 0: \x{ad89}
  2720. 0+ \x{ad89}LVT, LVT
  2721. \x{11fe}\x{1111}T, L
  2722. 0: \x{11fe}
  2723. 0+ \x{1111}T, L
  2724. \x{11fe}\x{1169}T, V
  2725. 0: \x{11fe}
  2726. 0+ \x{1169}T, V
  2727. \x{11fe}\x{ae4c}T, LV
  2728. 0: \x{11fe}
  2729. 0+ \x{ae4c}T, LV
  2730. \x{11fe}\x{ad89}T, LVT
  2731. 0: \x{11fe}
  2732. 0+ \x{ad89}T, LVT
  2733. \= Test extend and spacing mark
  2734. \x{1111}\x{ae4c}\x{0711}L, LV, extend
  2735. 0: \x{1111}\x{ae4c}\x{711}
  2736. 0+ L, LV, extend
  2737. \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
  2738. 0: \x{1111}\x{ae4c}\x{1b04}
  2739. 0+ L, LV, spacing mark
  2740. \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
  2741. 0: \x{1111}\x{ae4c}\x{1b04}\x{711}\x{1b04}
  2742. 0+ L, LV, spacing mark, extend, spacing mark
  2743. \= Test CR, LF, and control
  2744. \x0d\x{0711}CR, extend
  2745. 0: \x{0d}
  2746. 0+ \x{711}CR, extend
  2747. \x0d\x{1b04}CR, spacingmark
  2748. 0: \x{0d}
  2749. 0+ \x{1b04}CR, spacingmark
  2750. \x0a\x{0711}LF, extend
  2751. 0: \x{0a}
  2752. 0+ \x{711}LF, extend
  2753. \x0a\x{1b04}LF, spacingmark
  2754. 0: \x{0a}
  2755. 0+ \x{1b04}LF, spacingmark
  2756. \x0b\x{0711}Control, extend
  2757. 0: \x{0b}
  2758. 0+ \x{711}Control, extend
  2759. \x09\x{1b04}Control, spacingmark
  2760. 0: \x{09}
  2761. 0+ \x{1b04}Control, spacingmark
  2762. \= There are no Prepend characters, so we can't test Prepend, CR
  2763. /^(?>\X{2})X/utf,aftertext
  2764. \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2765. 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2766. 0+
  2767. /^\X{2,4}X/utf,aftertext
  2768. \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2769. 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2770. 0+
  2771. \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2772. 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2773. 0+
  2774. \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2775. 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2776. 0+
  2777. /^\X{2,4}?X/utf,aftertext
  2778. \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2779. 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2780. 0+
  2781. \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2782. 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2783. 0+
  2784. \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2785. 0: \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
  2786. 0+
  2787. /\x{1e9e}+/i,utf
  2788. \x{1e9e}\x{00df}
  2789. 0: \x{1e9e}\x{df}
  2790. /[z\x{1e9e}]+/i,utf
  2791. \x{1e9e}\x{00df}
  2792. 0: \x{1e9e}\x{df}
  2793. /\x{00df}+/i,utf
  2794. \x{1e9e}\x{00df}
  2795. 0: \x{1e9e}\x{df}
  2796. /[z\x{00df}]+/i,utf
  2797. \x{1e9e}\x{00df}
  2798. 0: \x{1e9e}\x{df}
  2799. /\x{1f88}+/i,utf
  2800. \x{1f88}\x{1f80}
  2801. 0: \x{1f88}\x{1f80}
  2802. /[z\x{1f88}]+/i,utf
  2803. \x{1f88}\x{1f80}
  2804. 0: \x{1f88}\x{1f80}
  2805. # Perl matches these
  2806. /\x{00b5}+/i,utf
  2807. \x{00b5}\x{039c}\x{03bc}
  2808. 0: \x{b5}\x{39c}\x{3bc}
  2809. /\x{039c}+/i,utf
  2810. \x{00b5}\x{039c}\x{03bc}
  2811. 0: \x{b5}\x{39c}\x{3bc}
  2812. /\x{03bc}+/i,utf
  2813. \x{00b5}\x{039c}\x{03bc}
  2814. 0: \x{b5}\x{39c}\x{3bc}
  2815. /\x{00c5}+/i,utf
  2816. \x{00c5}\x{00e5}\x{212b}
  2817. 0: \x{c5}\x{e5}\x{212b}
  2818. /\x{00e5}+/i,utf
  2819. \x{00c5}\x{00e5}\x{212b}
  2820. 0: \x{c5}\x{e5}\x{212b}
  2821. /\x{212b}+/i,utf
  2822. \x{00c5}\x{00e5}\x{212b}
  2823. 0: \x{c5}\x{e5}\x{212b}
  2824. /\x{01c4}+/i,utf
  2825. \x{01c4}\x{01c5}\x{01c6}
  2826. 0: \x{1c4}\x{1c5}\x{1c6}
  2827. /\x{01c5}+/i,utf
  2828. \x{01c4}\x{01c5}\x{01c6}
  2829. 0: \x{1c4}\x{1c5}\x{1c6}
  2830. /\x{01c6}+/i,utf
  2831. \x{01c4}\x{01c5}\x{01c6}
  2832. 0: \x{1c4}\x{1c5}\x{1c6}
  2833. /\x{01c7}+/i,utf
  2834. \x{01c7}\x{01c8}\x{01c9}
  2835. 0: \x{1c7}\x{1c8}\x{1c9}
  2836. /\x{01c8}+/i,utf
  2837. \x{01c7}\x{01c8}\x{01c9}
  2838. 0: \x{1c7}\x{1c8}\x{1c9}
  2839. /\x{01c9}+/i,utf
  2840. \x{01c7}\x{01c8}\x{01c9}
  2841. 0: \x{1c7}\x{1c8}\x{1c9}
  2842. /\x{01ca}+/i,utf
  2843. \x{01ca}\x{01cb}\x{01cc}
  2844. 0: \x{1ca}\x{1cb}\x{1cc}
  2845. /\x{01cb}+/i,utf
  2846. \x{01ca}\x{01cb}\x{01cc}
  2847. 0: \x{1ca}\x{1cb}\x{1cc}
  2848. /\x{01cc}+/i,utf
  2849. \x{01ca}\x{01cb}\x{01cc}
  2850. 0: \x{1ca}\x{1cb}\x{1cc}
  2851. /\x{01f1}+/i,utf
  2852. \x{01f1}\x{01f2}\x{01f3}
  2853. 0: \x{1f1}\x{1f2}\x{1f3}
  2854. /\x{01f2}+/i,utf
  2855. \x{01f1}\x{01f2}\x{01f3}
  2856. 0: \x{1f1}\x{1f2}\x{1f3}
  2857. /\x{01f3}+/i,utf
  2858. \x{01f1}\x{01f2}\x{01f3}
  2859. 0: \x{1f1}\x{1f2}\x{1f3}
  2860. /\x{0345}+/i,utf
  2861. \x{0345}\x{0399}\x{03b9}\x{1fbe}
  2862. 0: \x{345}\x{399}\x{3b9}\x{1fbe}
  2863. /\x{0399}+/i,utf
  2864. \x{0345}\x{0399}\x{03b9}\x{1fbe}
  2865. 0: \x{345}\x{399}\x{3b9}\x{1fbe}
  2866. /\x{03b9}+/i,utf
  2867. \x{0345}\x{0399}\x{03b9}\x{1fbe}
  2868. 0: \x{345}\x{399}\x{3b9}\x{1fbe}
  2869. /\x{1fbe}+/i,utf
  2870. \x{0345}\x{0399}\x{03b9}\x{1fbe}
  2871. 0: \x{345}\x{399}\x{3b9}\x{1fbe}
  2872. /\x{0392}+/i,utf
  2873. \x{0392}\x{03b2}\x{03d0}
  2874. 0: \x{392}\x{3b2}\x{3d0}
  2875. /\x{03b2}+/i,utf
  2876. \x{0392}\x{03b2}\x{03d0}
  2877. 0: \x{392}\x{3b2}\x{3d0}
  2878. /\x{03d0}+/i,utf
  2879. \x{0392}\x{03b2}\x{03d0}
  2880. 0: \x{392}\x{3b2}\x{3d0}
  2881. /\x{0395}+/i,utf
  2882. \x{0395}\x{03b5}\x{03f5}
  2883. 0: \x{395}\x{3b5}\x{3f5}
  2884. /\x{03b5}+/i,utf
  2885. \x{0395}\x{03b5}\x{03f5}
  2886. 0: \x{395}\x{3b5}\x{3f5}
  2887. /\x{03f5}+/i,utf
  2888. \x{0395}\x{03b5}\x{03f5}
  2889. 0: \x{395}\x{3b5}\x{3f5}
  2890. /\x{0398}+/i,utf
  2891. \x{0398}\x{03b8}\x{03d1}\x{03f4}
  2892. 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
  2893. /\x{03b8}+/i,utf
  2894. \x{0398}\x{03b8}\x{03d1}\x{03f4}
  2895. 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
  2896. /\x{03d1}+/i,utf
  2897. \x{0398}\x{03b8}\x{03d1}\x{03f4}
  2898. 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
  2899. /\x{03f4}+/i,utf
  2900. \x{0398}\x{03b8}\x{03d1}\x{03f4}
  2901. 0: \x{398}\x{3b8}\x{3d1}\x{3f4}
  2902. /\x{039a}+/i,utf
  2903. \x{039a}\x{03ba}\x{03f0}
  2904. 0: \x{39a}\x{3ba}\x{3f0}
  2905. /\x{03ba}+/i,utf
  2906. \x{039a}\x{03ba}\x{03f0}
  2907. 0: \x{39a}\x{3ba}\x{3f0}
  2908. /\x{03f0}+/i,utf
  2909. \x{039a}\x{03ba}\x{03f0}
  2910. 0: \x{39a}\x{3ba}\x{3f0}
  2911. /\x{03a0}+/i,utf
  2912. \x{03a0}\x{03c0}\x{03d6}
  2913. 0: \x{3a0}\x{3c0}\x{3d6}
  2914. /\x{03c0}+/i,utf
  2915. \x{03a0}\x{03c0}\x{03d6}
  2916. 0: \x{3a0}\x{3c0}\x{3d6}
  2917. /\x{03d6}+/i,utf
  2918. \x{03a0}\x{03c0}\x{03d6}
  2919. 0: \x{3a0}\x{3c0}\x{3d6}
  2920. /\x{03a1}+/i,utf
  2921. \x{03a1}\x{03c1}\x{03f1}
  2922. 0: \x{3a1}\x{3c1}\x{3f1}
  2923. /\x{03c1}+/i,utf
  2924. \x{03a1}\x{03c1}\x{03f1}
  2925. 0: \x{3a1}\x{3c1}\x{3f1}
  2926. /\x{03f1}+/i,utf
  2927. \x{03a1}\x{03c1}\x{03f1}
  2928. 0: \x{3a1}\x{3c1}\x{3f1}
  2929. /\x{03a3}+/i,utf
  2930. \x{03A3}\x{03C2}\x{03C3}
  2931. 0: \x{3a3}\x{3c2}\x{3c3}
  2932. /\x{03c2}+/i,utf
  2933. \x{03A3}\x{03C2}\x{03C3}
  2934. 0: \x{3a3}\x{3c2}\x{3c3}
  2935. /\x{03c3}+/i,utf
  2936. \x{03A3}\x{03C2}\x{03C3}
  2937. 0: \x{3a3}\x{3c2}\x{3c3}
  2938. /\x{03a6}+/i,utf
  2939. \x{03a6}\x{03c6}\x{03d5}
  2940. 0: \x{3a6}\x{3c6}\x{3d5}
  2941. /\x{03c6}+/i,utf
  2942. \x{03a6}\x{03c6}\x{03d5}
  2943. 0: \x{3a6}\x{3c6}\x{3d5}
  2944. /\x{03d5}+/i,utf
  2945. \x{03a6}\x{03c6}\x{03d5}
  2946. 0: \x{3a6}\x{3c6}\x{3d5}
  2947. /\x{03c9}+/i,utf
  2948. \x{03c9}\x{03a9}\x{2126}
  2949. 0: \x{3c9}\x{3a9}\x{2126}
  2950. /\x{03a9}+/i,utf
  2951. \x{03c9}\x{03a9}\x{2126}
  2952. 0: \x{3c9}\x{3a9}\x{2126}
  2953. /\x{2126}+/i,utf
  2954. \x{03c9}\x{03a9}\x{2126}
  2955. 0: \x{3c9}\x{3a9}\x{2126}
  2956. /\x{1e60}+/i,utf
  2957. \x{1e60}\x{1e61}\x{1e9b}
  2958. 0: \x{1e60}\x{1e61}\x{1e9b}
  2959. /\x{1e61}+/i,utf
  2960. \x{1e60}\x{1e61}\x{1e9b}
  2961. 0: \x{1e60}\x{1e61}\x{1e9b}
  2962. /\x{1e9b}+/i,utf
  2963. \x{1e60}\x{1e61}\x{1e9b}
  2964. 0: \x{1e60}\x{1e61}\x{1e9b}
  2965. /\x{1e9e}+/i,utf
  2966. \x{1e9e}\x{00df}
  2967. 0: \x{1e9e}\x{df}
  2968. /\x{00df}+/i,utf
  2969. \x{1e9e}\x{00df}
  2970. 0: \x{1e9e}\x{df}
  2971. /\x{1f88}+/i,utf
  2972. \x{1f88}\x{1f80}
  2973. 0: \x{1f88}\x{1f80}
  2974. /\x{1f80}+/i,utf
  2975. \x{1f88}\x{1f80}
  2976. 0: \x{1f88}\x{1f80}
  2977. /\x{004b}+/i,utf
  2978. \x{004b}\x{006b}\x{212a}
  2979. 0: Kk\x{212a}
  2980. /\x{006b}+/i,utf
  2981. \x{004b}\x{006b}\x{212a}
  2982. 0: Kk\x{212a}
  2983. /\x{212a}+/i,utf
  2984. \x{004b}\x{006b}\x{212a}
  2985. 0: Kk\x{212a}
  2986. /\x{0053}+/i,utf
  2987. \x{0053}\x{0073}\x{017f}
  2988. 0: Ss\x{17f}
  2989. /\x{0073}+/i,utf
  2990. \x{0053}\x{0073}\x{017f}
  2991. 0: Ss\x{17f}
  2992. /\x{017f}+/i,utf
  2993. \x{0053}\x{0073}\x{017f}
  2994. 0: Ss\x{17f}
  2995. /ist/i,utf
  2996. \= Expect no match
  2997. ikt
  2998. No match
  2999. /is+t/i,utf
  3000. iSs\x{17f}t
  3001. 0: iSs\x{17f}t
  3002. \= Expect no match
  3003. ikt
  3004. No match
  3005. /is+?t/i,utf
  3006. \= Expect no match
  3007. ikt
  3008. No match
  3009. /is?t/i,utf
  3010. \= Expect no match
  3011. ikt
  3012. No match
  3013. /is{2}t/i,utf
  3014. \= Expect no match
  3015. iskt
  3016. No match
  3017. /^\p{Xuc}/utf
  3018. $abc
  3019. 0: $
  3020. @abc
  3021. 0: @
  3022. `abc
  3023. 0: `
  3024. \x{1234}abc
  3025. 0: \x{1234}
  3026. \= Expect no match
  3027. abc
  3028. No match
  3029. /^\p{Xuc}+/utf
  3030. $@`\x{a0}\x{1234}\x{e000}**
  3031. 0: $@`\x{a0}\x{1234}\x{e000}
  3032. \= Expect no match
  3033. \x{9f}
  3034. No match
  3035. /^\p{Xuc}+?/utf
  3036. $@`\x{a0}\x{1234}\x{e000}**
  3037. 0: $@`\x{a0}\x{1234}\x{e000}
  3038. 1: $@`\x{a0}\x{1234}
  3039. 2: $@`\x{a0}
  3040. 3: $@`
  3041. 4: $@
  3042. 5: $
  3043. \= Expect no match
  3044. \x{9f}
  3045. No match
  3046. /^\p{Xuc}+?\*/utf
  3047. $@`\x{a0}\x{1234}\x{e000}**
  3048. 0: $@`\x{a0}\x{1234}\x{e000}*
  3049. \= Expect no match
  3050. \x{9f}
  3051. No match
  3052. /^\p{Xuc}++/utf
  3053. $@`\x{a0}\x{1234}\x{e000}**
  3054. 0: $@`\x{a0}\x{1234}\x{e000}
  3055. \= Expect no match
  3056. \x{9f}
  3057. No match
  3058. /^\p{Xuc}{3,5}/utf
  3059. $@`\x{a0}\x{1234}\x{e000}**
  3060. 0: $@`\x{a0}\x{1234}
  3061. \= Expect no match
  3062. \x{9f}
  3063. No match
  3064. /^\p{Xuc}{3,5}?/utf
  3065. $@`\x{a0}\x{1234}\x{e000}**
  3066. 0: $@`\x{a0}\x{1234}
  3067. 1: $@`\x{a0}
  3068. 2: $@`
  3069. \= Expect no match
  3070. \x{9f}
  3071. No match
  3072. /^[\p{Xuc}]/utf
  3073. $@`\x{a0}\x{1234}\x{e000}**
  3074. 0: $
  3075. \= Expect no match
  3076. \x{9f}
  3077. No match
  3078. /^[\p{Xuc}]+/utf
  3079. $@`\x{a0}\x{1234}\x{e000}**
  3080. 0: $@`\x{a0}\x{1234}\x{e000}
  3081. \= Expect no match
  3082. \x{9f}
  3083. No match
  3084. /^\P{Xuc}/utf
  3085. abc
  3086. 0: a
  3087. \= Expect no match
  3088. $abc
  3089. No match
  3090. @abc
  3091. No match
  3092. `abc
  3093. No match
  3094. \x{1234}abc
  3095. No match
  3096. /^[\P{Xuc}]/utf
  3097. abc
  3098. 0: a
  3099. \= Expect no match
  3100. $abc
  3101. No match
  3102. @abc
  3103. No match
  3104. `abc
  3105. No match
  3106. \x{1234}abc
  3107. No match
  3108. /^A\s+Z/utf,ucp
  3109. A\x{2005}Z
  3110. 0: A\x{2005}Z
  3111. A\x{85}\x{180e}\x{2005}Z
  3112. 0: A\x{85}\x{180e}\x{2005}Z
  3113. /^A[\s]+Z/utf,ucp
  3114. A\x{2005}Z
  3115. 0: A\x{2005}Z
  3116. A\x{85}\x{180e}\x{2005}Z
  3117. 0: A\x{85}\x{180e}\x{2005}Z
  3118. /(?<=\x{100})\x{200}(?=\x{300})/utf,allusedtext
  3119. \x{100}\x{200}\x{300}
  3120. 0: \x{100}\x{200}\x{300}
  3121. <<<<<<< >>>>>>>
  3122. # -----------------------------------------------------------------------------
  3123. # Tests for bidi control and bidi class properties
  3124. /\p{ bidi_control }/utf
  3125. -->\x{202c}<--
  3126. 0: \x{202c}
  3127. /\p{bidicontrol}+/utf
  3128. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3129. 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
  3130. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3131. 0: \x{2066}\x{2067}\x{2068}\x{2069}
  3132. /\p{bidicontrol}+?/utf
  3133. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3134. 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
  3135. 1: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}
  3136. 2: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}
  3137. 3: \x{61c}\x{200e}\x{200f}\x{202a}
  3138. 4: \x{61c}\x{200e}\x{200f}
  3139. 5: \x{61c}\x{200e}
  3140. 6: \x{61c}
  3141. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3142. 0: \x{2066}\x{2067}\x{2068}\x{2069}
  3143. 1: \x{2066}\x{2067}\x{2068}
  3144. 2: \x{2066}\x{2067}
  3145. 3: \x{2066}
  3146. /\p{bidicontrol}++/utf
  3147. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3148. 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
  3149. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3150. 0: \x{2066}\x{2067}\x{2068}\x{2069}
  3151. /[\p{bidi_control}]/utf
  3152. -->\x{202c}<--
  3153. 0: \x{202c}
  3154. /[\p{bidicontrol}]+/utf
  3155. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3156. 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
  3157. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3158. 0: \x{2066}\x{2067}\x{2068}\x{2069}
  3159. /[\p{bidicontrol}]+?/utf
  3160. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3161. 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
  3162. 1: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}
  3163. 2: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}
  3164. 3: \x{61c}\x{200e}\x{200f}\x{202a}
  3165. 4: \x{61c}\x{200e}\x{200f}
  3166. 5: \x{61c}\x{200e}
  3167. 6: \x{61c}
  3168. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3169. 0: \x{2066}\x{2067}\x{2068}\x{2069}
  3170. 1: \x{2066}\x{2067}\x{2068}
  3171. 2: \x{2066}\x{2067}
  3172. 3: \x{2066}
  3173. /[\p{bidicontrol}]++/utf
  3174. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3175. 0: \x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}
  3176. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3177. 0: \x{2066}\x{2067}\x{2068}\x{2069}
  3178. /[\p{bidicontrol}<>]+/utf
  3179. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3180. 0: >\x{61c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<
  3181. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3182. 0: >\x{2066}\x{2067}\x{2068}\x{2069}<
  3183. /\P{bidicontrol}+/g,utf
  3184. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3185. 0: -->
  3186. 0: <--
  3187. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3188. 0: -->
  3189. 0: <--
  3190. /\p{^bidicontrol}+/g,utf
  3191. -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
  3192. 0: -->
  3193. 0: <--
  3194. -->\x{2066}\x{2067}\x{2068}\x{2069}<--
  3195. 0: -->
  3196. 0: <--
  3197. /\p{bidi class = al}/utf
  3198. -->\x{061D}<--
  3199. 0: \x{61d}
  3200. /\p{bidi class = al}+/utf
  3201. -->\x{061D}\x{061e}\x{061f}<--
  3202. 0: \x{61d}\x{61e}\x{61f}
  3203. /\p{bidi_class : AL}+?/utf
  3204. -->\x{061D}\x{061e}\x{061f}<--
  3205. 0: \x{61d}\x{61e}\x{61f}
  3206. 1: \x{61d}\x{61e}
  3207. 2: \x{61d}
  3208. /\p{Bidi_Class : AL}++/utf
  3209. -->\x{061D}\x{061e}\x{061f}<--
  3210. 0: \x{61d}\x{61e}\x{61f}
  3211. /\p{bidi class = aN}+/utf
  3212. -->\x{061D}\x{0602}\x{0604}\x{061f}<--
  3213. 0: \x{602}\x{604}
  3214. /\p{bidi class = B}+/utf
  3215. -->\x{0a}\x{0d}\x{01c}\x{01e}\x{085}\x{2029}<--
  3216. 0: \x{0a}\x{0d}\x{1c}\x{1e}\x{85}\x{2029}
  3217. /\p{bidi class:BN}+/utf
  3218. -->\x{0}\x{08}\x{200c}\x{fffe}\x{dfffe}\x{10ffff}<--
  3219. 0: \x{00}\x{08}\x{200c}\x{fffe}\x{dfffe}\x{10ffff}
  3220. /\p{bidiclass:cs}+/utf
  3221. -->,.\x{060c}\x{ff1a}<--
  3222. 0: ,.\x{60c}\x{ff1a}
  3223. /\p{bidiclass:En}+/utf
  3224. -->09\x{b2}\x{2074}\x{1fbf9}<--
  3225. 0: 09\x{b2}\x{2074}\x{1fbf9}
  3226. /\p{bidiclass:es}+/utf
  3227. ==>+-\x{207a}\x{ff0d}<==
  3228. 0: +-\x{207a}\x{ff0d}
  3229. /\p{bidiclass:et}+/utf
  3230. -->#\{24}%\x{a2}\x{A838}\x{1e2ff}<--
  3231. 0: #
  3232. /\p{bidiclass:FSI}+/utf
  3233. -->\x{2068}<--
  3234. 0: \x{2068}
  3235. /\p{bidi class:L}+/utf
  3236. -->ABC<--
  3237. 0: ABC
  3238. /\P{bidi class:L}+/utf
  3239. -->ABC<--
  3240. 0: -->
  3241. /\p{bidi class:LRE}+\p{bidiclass=lri}*\p{bidiclass:lro}/utf
  3242. -->\x{202a}\x{2066}\x{202d}<--
  3243. 0: \x{202a}\x{2066}\x{202d}
  3244. /\p{bidi class:NSM}+/utf
  3245. -->\x{9bc}\x{a71}\x{e31}<--
  3246. 0: \x{9bc}\x{a71}\x{e31}
  3247. /\p{bidi class:ON}+/utf
  3248. -->\x{21}'()*;@\x{384}\x{2039}<=-
  3249. 0: >!'()*;@\x{384}\x{2039}<=
  3250. /\p{bidiclass:pdf}\p{bidiclass:pdi}/utf
  3251. -->\x{202c}\x{2069}<--
  3252. 0: \x{202c}\x{2069}
  3253. /\p{bidi class:R}+/utf
  3254. -->\x{590}\x{5c6}\x{200f}\x{10805}<--
  3255. 0: \x{590}\x{5c6}\x{200f}\x{10805}
  3256. /\p{bidi class:RLE}+\p{bidi class:RLI}*\p{bidi class:RLO}+/utf
  3257. -->\x{202b}\x{2067}\x{202e}<--
  3258. 0: \x{202b}\x{2067}\x{202e}
  3259. /\p{bidi class:S}+\p{bidiclass:WS}+/utf
  3260. -->\x{9}\x{b}\x{1f} \x{c} \x{2000} \x{3000}<--
  3261. 0: \x{09}\x{0b}\x{1f} \x{0c} \x{2000} \x{3000}
  3262. # -----------------------------------------------------------------------------
  3263. /\p{katakana}/utf
  3264. \x{30a1}
  3265. 0: \x{30a1}
  3266. \x{3001}
  3267. 0: \x{3001}
  3268. /\p{scx:katakana}/utf
  3269. \x{30a1}
  3270. 0: \x{30a1}
  3271. \x{3001}
  3272. 0: \x{3001}
  3273. /\p{script extensions:katakana}/utf
  3274. \x{30a1}
  3275. 0: \x{30a1}
  3276. \x{3001}
  3277. 0: \x{3001}
  3278. /\p{sc:katakana}/utf
  3279. \x{30a1}
  3280. 0: \x{30a1}
  3281. \= Expect no match
  3282. \x{3001}
  3283. No match
  3284. /\p{script:katakana}/utf
  3285. \x{30a1}
  3286. 0: \x{30a1}
  3287. \= Expect no match
  3288. \x{3001}
  3289. No match
  3290. /\p{sc:katakana}{3,}/utf
  3291. \x{30a1}\x{30fa}\x{32d0}\x{1b122}\x{ff66}\x{3001}ABC
  3292. 0: \x{30a1}\x{30fa}\x{32d0}\x{1b122}\x{ff66}
  3293. /\p{sc:katakana}{3,}?/utf
  3294. \x{30a1}\x{30fa}\x{32d0}\x{1b122}\x{ff66}\x{3001}ABC
  3295. 0: \x{30a1}\x{30fa}\x{32d0}\x{1b122}\x{ff66}
  3296. 1: \x{30a1}\x{30fa}\x{32d0}\x{1b122}
  3297. 2: \x{30a1}\x{30fa}\x{32d0}
  3298. # Tests for PCRE2_EXTRA_CASELESS_RESTRICT. Compare each test with and without
  3299. # the restriction.
  3300. /AskZ/i,utf,caseless_restrict
  3301. AskZ
  3302. 0: AskZ
  3303. aSKz
  3304. 0: aSKz
  3305. \= Expect no match
  3306. A\x{17f}kZ
  3307. No match
  3308. As\x{212a}Z
  3309. No match
  3310. /AskZ/i,utf
  3311. AskZ
  3312. 0: AskZ
  3313. aSKz
  3314. 0: aSKz
  3315. A\x{17f}kZ
  3316. 0: A\x{17f}kZ
  3317. As\x{212a}Z
  3318. 0: As\x{212a}Z
  3319. /A\x{17f}\x{212a}Z/ir,utf
  3320. \= Expect no match
  3321. AskZ
  3322. No match
  3323. /A\x{17f}\x{212a}Z/i,utf
  3324. AskZ
  3325. 0: AskZ
  3326. /[AskZ]+/i,utf,caseless_restrict
  3327. AskZ
  3328. 0: AskZ
  3329. aSKz
  3330. 0: aSKz
  3331. A\x{17f}kZ
  3332. 0: A
  3333. As\x{212a}Z
  3334. 0: As
  3335. /[AskZ]+/i,utf
  3336. AskZ
  3337. 0: AskZ
  3338. aSKz
  3339. 0: aSKz
  3340. A\x{17f}kZ
  3341. 0: A\x{17f}kZ
  3342. As\x{212a}Z
  3343. 0: As\x{212a}Z
  3344. /[\x{17f}\x{212a}]+/ir,utf
  3345. \= Expect no match
  3346. AskZ
  3347. No match
  3348. /[\x{17f}\x{212a}]+/i,utf
  3349. AskZ
  3350. 0: sk
  3351. /[^s]+/ir,utf
  3352. A\x{17f}Z
  3353. 0: A\x{17f}Z
  3354. /[^s]+/i,utf
  3355. A\x{17f}Z
  3356. 0: A
  3357. /[^k]+/ir,utf
  3358. A\x{212a}Z
  3359. 0: A\x{212a}Z
  3360. /[^k]+/i,utf
  3361. A\x{212a}Z
  3362. 0: A
  3363. /[^sk]+/ir,utf
  3364. A\x{17f}\x{212a}Z
  3365. 0: A\x{17f}\x{212a}Z
  3366. /[^sk]+/i,utf
  3367. A\x{17f}\x{212a}Z
  3368. 0: A
  3369. /[^\x{17f}]+/ir,utf
  3370. AsSZ
  3371. 0: AsSZ
  3372. /[^\x{17f}]+/i,utf
  3373. AsSZ
  3374. 0: A
  3375. /[Ss]+/irB,utf
  3376. ------------------------------------------------------------------
  3377. Bra
  3378. /i S++
  3379. Ket
  3380. End
  3381. ------------------------------------------------------------------
  3382. Sss\x{17f}ss
  3383. 0: Sss
  3384. /[Ss]+/iB,utf
  3385. ------------------------------------------------------------------
  3386. Bra
  3387. [Ss\x{17f}\x{17f}]++
  3388. Ket
  3389. End
  3390. ------------------------------------------------------------------
  3391. Sss\x{17f}ss
  3392. 0: Sss\x{17f}ss
  3393. /[S\x{17f}]/irB,utf
  3394. ------------------------------------------------------------------
  3395. Bra
  3396. [Ss\x{17f}]
  3397. Ket
  3398. End
  3399. ------------------------------------------------------------------
  3400. /[S\x{17f}]/iB,utf
  3401. ------------------------------------------------------------------
  3402. Bra
  3403. [Ss\x{17f}\x{17f}]
  3404. Ket
  3405. End
  3406. ------------------------------------------------------------------
  3407. /[\x{17f}s]/irB,utf
  3408. ------------------------------------------------------------------
  3409. Bra
  3410. [Ss\x{17f}]
  3411. Ket
  3412. End
  3413. ------------------------------------------------------------------
  3414. /[\x{17f}s]/iB,utf
  3415. ------------------------------------------------------------------
  3416. Bra
  3417. [Ss\x{17f}\x{17f}]
  3418. Ket
  3419. End
  3420. ------------------------------------------------------------------
  3421. /[\x{4b}\x{6b}]/irB,utf
  3422. ------------------------------------------------------------------
  3423. Bra
  3424. /i K
  3425. Ket
  3426. End
  3427. ------------------------------------------------------------------
  3428. /[\x{4b}\x{6b}]/iB,utf
  3429. ------------------------------------------------------------------
  3430. Bra
  3431. [Kk\x{212a}\x{212a}]
  3432. Ket
  3433. End
  3434. ------------------------------------------------------------------
  3435. /s(?r)s(?-r)s(?r:s)s/i,utf
  3436. \x{17f}S\x{17f}S\x{17f}
  3437. 0: \x{17f}S\x{17f}S\x{17f}
  3438. \= Expect no match
  3439. \x{17f}\x{17f}\x{17f}S\x{17f}
  3440. No match
  3441. \x{17f}S\x{17f}\x{17f}\x{17f}
  3442. No match
  3443. /k(?^i)k/ir,utf
  3444. K\x{212a}
  3445. 0: K\x{212a}
  3446. \= Expect no match
  3447. \x{212a}\x{212a}
  3448. No match
  3449. # End caseless restrict tests
  3450. # TESTS for PCRE2_EXTRA_ASCII_xxx - again, tests with and without.
  3451. # DIGITS
  3452. /\d+/i,utf
  3453. 123\x{660}456
  3454. 0: 123
  3455. /\d+/i,utf,ucp
  3456. 123\x{660}456
  3457. 0: 123\x{660}456
  3458. /\d+/i,utf,ucp,ascii_bsd
  3459. 123\x{660}456
  3460. 0: 123
  3461. /[\d]+/i,utf
  3462. 123\x{660}456
  3463. 0: 123
  3464. /[\d]+/i,utf,ucp
  3465. 123\x{660}456
  3466. 0: 123\x{660}456
  3467. /[\d]+/i,utf,ucp,ascii_bsd
  3468. 123\x{660}456
  3469. 0: 123
  3470. /\d(?aD)\d(?-aD)\d/utf,ucp
  3471. \x{660}9\x{660}
  3472. 0: \x{660}9\x{660}
  3473. \= Expect no match
  3474. \x{660}\x{660}\x{660}
  3475. No match
  3476. /\d(?-aD)\d(?aD)\d/utf,ucp,ascii_bsd
  3477. 999
  3478. 0: 999
  3479. 9\x{660}9
  3480. 0: 9\x{660}9
  3481. /\d(?a)\d(?-a)\d/utf,ucp
  3482. \x{660}9\x{660}
  3483. 0: \x{660}9\x{660}
  3484. \= Expect no match
  3485. \x{660}\x{660}\x{660}
  3486. No match
  3487. /\d(?-aD)\d(?aD)\d/utf,ucp,ascii_bsd
  3488. 999
  3489. 0: 999
  3490. 9\x{660}9
  3491. 0: 9\x{660}9
  3492. # SPACES
  3493. />\s+</i,utf
  3494. > <
  3495. 0: > <
  3496. \= Expect no match
  3497. >\x{a0} <
  3498. No match
  3499. />\s+</i,utf,ucp
  3500. > <
  3501. 0: > <
  3502. >\x{a0} <
  3503. 0: >\x{a0} <
  3504. />\s+</i,utf,ucp,ascii_bss
  3505. > <
  3506. 0: > <
  3507. \= Expect no match
  3508. >\x{a0} <
  3509. No match
  3510. />[\s]+</i,utf
  3511. > <
  3512. 0: > <
  3513. \= Expect no match
  3514. >\x{a0} <
  3515. No match
  3516. />[\s]+</i,utf,ucp
  3517. > <
  3518. 0: > <
  3519. >\x{a0} <
  3520. 0: >\x{a0} <
  3521. />[\s]+</i,utf,ucp,ascii_bss
  3522. > <
  3523. 0: > <
  3524. \= Expect no match
  3525. >\x{a0} <
  3526. No match
  3527. />\s(?aS)\s(?-aS)\s</utf,ucp
  3528. >\x{a0} \x{a0}<
  3529. 0: >\x{a0} \x{a0}<
  3530. \= Expect no match
  3531. >\x{a0}\x{a0}\x{a0}<
  3532. No match
  3533. />\s(?a)\s(?-a)\s</utf,ucp
  3534. >\x{a0} \x{a0}<
  3535. 0: >\x{a0} \x{a0}<
  3536. \= Expect no match
  3537. >\x{a0}\x{a0}\x{a0}<
  3538. No match
  3539. # WORDS
  3540. /\w+/i,utf
  3541. 123\x{660}abc
  3542. 0: 123
  3543. /\w+/i,utf,ucp
  3544. 123\x{660}abc
  3545. 0: 123\x{660}abc
  3546. /\w+/i,utf,ucp,ascii_bsw
  3547. 123\x{660}abc
  3548. 0: 123
  3549. /[\w]+/i,utf
  3550. 123\x{660}abc
  3551. 0: 123
  3552. /[\w]+/i,utf,ucp
  3553. 123\x{660}abc
  3554. 0: 123\x{660}abc
  3555. /[\w]+/i,utf,ucp,ascii_bsw
  3556. 123\x{660}abc
  3557. 0: 123
  3558. /\w(?aW)\w(?-aW)\w/utf,ucp
  3559. \x{660}A\x{c0}
  3560. 0: \x{660}A\x{c0}
  3561. \= Expect no match
  3562. \x{660}\x{c0}\x{c0}
  3563. No match
  3564. /\w(?a)\w(?-a)\w/utf,ucp
  3565. \x{660}A\x{c0}
  3566. 0: \x{660}A\x{c0}
  3567. \= Expect no match
  3568. \x{660}\x{c0}\x{c0}
  3569. No match
  3570. # POSIX
  3571. /^[[:digit:]]+$/utf,ucp
  3572. 123456
  3573. 0: 123456
  3574. 123\x{660}456
  3575. 0: 123\x{660}456
  3576. /^[[:digit:]]+$/utf,ucp,ascii_digit
  3577. 123456
  3578. 0: 123456
  3579. \= Expect no match
  3580. 123\x{660}456
  3581. No match
  3582. /[[:digit:]]+/g,utf,ucp,ascii_digit
  3583. 123\x{660}456
  3584. 0: 123
  3585. 0: 456
  3586. /(?-aT)[[:digit:]](?aT)[[:digit:]]/utf,ucp,ascii_digit
  3587. 11
  3588. 0: 11
  3589. \x{ff11}1
  3590. 0: \x{ff11}1
  3591. \= Expect no match
  3592. 1\x{ff11}
  3593. No match
  3594. /(?-aT:[[:digit:]])[[:digit:]]/utf,ucp,ascii_digit
  3595. 11
  3596. 0: 11
  3597. \x{ff11}1
  3598. 0: \x{ff11}1
  3599. \= Expect no match
  3600. 1\x{ff11}
  3601. No match
  3602. /(?-aT:[[:digit:]])[[:digit:]]/utf,never_ucp,ascii_digit
  3603. 11
  3604. 0: 11
  3605. \= Expect no match
  3606. \x{ff11}1
  3607. No match
  3608. 1\x{ff11}
  3609. No match
  3610. /[[:digit:]]+/utf,ucp,ascii_posix
  3611. 123\x{660}456
  3612. 0: 123
  3613. /(?-aP)[[:digit:]](?aP)[[:digit:]]/utf,ucp,ascii_posix
  3614. 11
  3615. 0: 11
  3616. \x{ff11}1
  3617. 0: \x{ff11}1
  3618. \= Expect no match
  3619. 1\x{ff11}
  3620. No match
  3621. /(?-aP:[[:digit:]])[[:digit:]]/utf,ucp,ascii_posix
  3622. 11
  3623. 0: 11
  3624. \x{ff11}1
  3625. 0: \x{ff11}1
  3626. \= Expect no match
  3627. 1\x{ff11}
  3628. No match
  3629. /(?-a:[[:digit:]])[[:digit:]]/a,utf,ucp
  3630. 11
  3631. 0: 11
  3632. \x{ff11}1
  3633. 0: \x{ff11}1
  3634. \= Expect no match
  3635. 1\x{ff11}
  3636. No match
  3637. />[[:space:]]+</utf,ucp
  3638. >\x{a0} \x{a0}<
  3639. 0: >\x{a0} \x{a0}<
  3640. >\x{a0}\x{a0}\x{a0}<
  3641. 0: >\x{a0}\x{a0}\x{a0}<
  3642. />[[:space:]]+</utf,ucp,ascii_posix
  3643. \= Expect no match
  3644. >\x{a0} \x{a0}<
  3645. No match
  3646. /(?aP)[[:alnum:]]+/i,ucp,utf
  3647. abcáxyz
  3648. 0: abc
  3649. abc\x{660}xyz
  3650. 0: abc
  3651. /(?aP)[[:alnum:]\d]+/i,ucp,utf
  3652. abc\x{660}xyz
  3653. 0: abc\x{660}xyz
  3654. /(*UCP)(*UTF)[[:alnum:]](?aP:[[:alnum:]])[[:alnum:]]/
  3655. \x{660}A\x{660}
  3656. 0: \x{660}A\x{660}
  3657. \= Expect no match
  3658. \x{660}\x{660}\x{660}
  3659. No match
  3660. # VARIOUS
  3661. /[\d\s\w]+/a,ucp,utf
  3662. 9 A\x{660}À
  3663. 0: 9 A
  3664. 9 AÀ\x{660}
  3665. 0: 9 A
  3666. # End PCRE2_EXTRA_ASCII_xxx tests
  3667. /\w+/utf,ucp
  3668. --cafe\x{300}_au\x{203f}lait!
  3669. 0: cafe\x{300}_au\x{203f}lait
  3670. /[\w]+/utf,ucp
  3671. --cafe\x{300}_au\x{203f}lait!
  3672. 0: cafe\x{300}_au\x{203f}lait
  3673. /\b.+?\b/utf,ucp
  3674. --cafe\x{300}_au\x{203f}lait!
  3675. 0: cafe\x{300}_au\x{203f}lait
  3676. /caf\B.+?\B/utf,ucp
  3677. --cafe\x{300}_au\x{203f}lait!
  3678. 0: cafe\x{300}_au\x{203f}lait!
  3679. 1: cafe\x{300}_au\x{203f}lai
  3680. 2: cafe\x{300}_au\x{203f}la
  3681. 3: cafe\x{300}_au\x{203f}l
  3682. 4: cafe\x{300}_au\x{203f}
  3683. 5: cafe\x{300}_au
  3684. 6: cafe\x{300}_a
  3685. 7: cafe\x{300}_
  3686. 8: cafe\x{300}
  3687. 9: cafe
  3688. # End of testinput7