12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534 |
- # This set of tests checks UTF and Unicode property support with the DFA
- # matching functionality of pcre2_dfa_match(). A default subject modifier is
- # used to force DFA matching for all tests.
- #subject dfa
- #newline_default LF any anyCRLF
- /\x{100}ab/utf
- \x{100}ab
-
- /a\x{100}*b/utf
- ab
- a\x{100}b
- a\x{100}\x{100}b
-
- /a\x{100}+b/utf
- a\x{100}b
- a\x{100}\x{100}b
- \= Expect no match
- ab
-
- /\bX/utf
- Xoanon
- +Xoanon
- \x{300}Xoanon
- \= Expect no match
- YXoanon
-
- /\BX/utf
- YXoanon
- \= Expect no match
- Xoanon
- +Xoanon
- \x{300}Xoanon
- /X\b/utf
- X+oanon
- ZX\x{300}oanon
- FAX
- \= Expect no match
- Xoanon
-
- /X\B/utf
- Xoanon
- \= Expect no match
- X+oanon
- ZX\x{300}oanon
- FAX
-
- /[^a]/utf
- abcd
- a\x{100}
- /^[abc\x{123}\x{400}-\x{402}]{2,3}\d/utf
- ab99
- \x{123}\x{123}45
- \x{400}\x{401}\x{402}6
- \= Expect no match
- d99
- \x{123}\x{122}4
- \x{400}\x{403}6
- \x{400}\x{401}\x{402}\x{402}6
- /a.b/utf
- acb
- a\x7fb
- a\x{100}b
- \= Expect no match
- a\nb
- /a(.{3})b/utf
- a\x{4000}xyb
- a\x{4000}\x7fyb
- a\x{4000}\x{100}yb
- \= Expect no match
- a\x{4000}b
- ac\ncb
- /a(.*?)(.)/
- a\xc0\x88b
- /a(.*?)(.)/utf
- a\x{100}b
- /a(.*)(.)/
- a\xc0\x88b
- /a(.*)(.)/utf
- a\x{100}b
- /a(.)(.)/
- a\xc0\x92bcd
- /a(.)(.)/utf
- a\x{240}bcd
- /a(.?)(.)/
- a\xc0\x92bcd
- /a(.?)(.)/utf
- a\x{240}bcd
- /a(.??)(.)/
- a\xc0\x92bcd
- /a(.??)(.)/utf
- a\x{240}bcd
- /a(.{3})b/utf
- a\x{1234}xyb
- a\x{1234}\x{4321}yb
- a\x{1234}\x{4321}\x{3412}b
- \= Expect no match
- a\x{1234}b
- ac\ncb
- /a(.{3,})b/utf
- a\x{1234}xyb
- a\x{1234}\x{4321}yb
- a\x{1234}\x{4321}\x{3412}b
- axxxxbcdefghijb
- a\x{1234}\x{4321}\x{3412}\x{3421}b
- \= Expect no match
- a\x{1234}b
- /a(.{3,}?)b/utf
- a\x{1234}xyb
- a\x{1234}\x{4321}yb
- a\x{1234}\x{4321}\x{3412}b
- axxxxbcdefghijb
- a\x{1234}\x{4321}\x{3412}\x{3421}b
- \= Expect no match
- a\x{1234}b
- /a(.{3,5})b/utf
- a\x{1234}xyb
- a\x{1234}\x{4321}yb
- a\x{1234}\x{4321}\x{3412}b
- axxxxbcdefghijb
- a\x{1234}\x{4321}\x{3412}\x{3421}b
- axbxxbcdefghijb
- axxxxxbcdefghijb
- \= Expect no match
- a\x{1234}b
- axxxxxxbcdefghijb
- /a(.{3,5}?)b/utf
- a\x{1234}xyb
- a\x{1234}\x{4321}yb
- a\x{1234}\x{4321}\x{3412}b
- axxxxbcdefghijb
- a\x{1234}\x{4321}\x{3412}\x{3421}b
- axbxxbcdefghijb
- axxxxxbcdefghijb
- \= Expect no match
- a\x{1234}b
- axxxxxxbcdefghijb
- /^[a\x{c0}]/utf
- \= Expect no match
- \x{100}
- /(?<=aXb)cd/utf
- aXbcd
- /(?<=a\x{100}b)cd/utf
- a\x{100}bcd
- /(?<=a\x{100000}b)cd/utf
- a\x{100000}bcd
-
- /(?:\x{100}){3}b/utf
- \x{100}\x{100}\x{100}b
- \= Expect no match
- \x{100}\x{100}b
- /\x{ab}/utf
- \x{ab}
- \xc2\xab
- \= Expect no match
- \x00{ab}
- /(?<=(.))X/utf
- WXYZ
- \x{256}XYZ
- \= Expect no match
- XYZ
- /[^a]+/g,utf
- bcd
- \x{100}aY\x{256}Z
-
- /^[^a]{2}/utf
- \x{100}bc
-
- /^[^a]{2,}/utf
- \x{100}bcAa
- /^[^a]{2,}?/utf
- \x{100}bca
- /[^a]+/gi,utf
- bcd
- \x{100}aY\x{256}Z
-
- /^[^a]{2}/i,utf
- \x{100}bc
-
- /^[^a]{2,}/i,utf
- \x{100}bcAa
- /^[^a]{2,}?/i,utf
- \x{100}bca
- /\x{100}{0,0}/utf
- abcd
-
- /\x{100}?/utf
- abcd
- \x{100}\x{100}
- /\x{100}{0,3}/utf
- \x{100}\x{100}
- \x{100}\x{100}\x{100}\x{100}
-
- /\x{100}*/utf
- abce
- \x{100}\x{100}\x{100}\x{100}
- /\x{100}{1,1}/utf
- abcd\x{100}\x{100}\x{100}\x{100}
- /\x{100}{1,3}/utf
- abcd\x{100}\x{100}\x{100}\x{100}
- /\x{100}+/utf
- abcd\x{100}\x{100}\x{100}\x{100}
- /\x{100}{3}/utf
- abcd\x{100}\x{100}\x{100}XX
- /\x{100}{3,5}/utf
- abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
- /\x{100}{3,}/utf,no_auto_possess
- abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
- /(?<=a\x{100}{2}b)X/utf
- Xyyya\x{100}\x{100}bXzzz
- /\D*/utf,no_auto_possess
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- /\D*/utf,no_auto_possess
- \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
- /\D/utf
- 1X2
- 1\x{100}2
-
- />\S/utf
- > >X Y
- > >\x{100} Y
-
- /\d/utf
- \x{100}3
-
- /\s/utf
- \x{100} X
-
- /\D+/utf
- 12abcd34
- \= Expect no match
- 1234
- /\D{2,3}/utf
- 12abcd34
- 12ab34
- \= Expect no match
- 1234
- 12a34
- /\D{2,3}?/utf
- 12abcd34
- 12ab34
- \= Expect no match
- 1234
- 12a34
- /\d+/utf
- 12abcd34
- /\d{2,3}/utf
- 12abcd34
- 1234abcd
- \= Expect no match
- 1.4
- /\d{2,3}?/utf
- 12abcd34
- 1234abcd
- \= Expect no match
- 1.4
- /\S+/utf
- 12abcd34
- \= Expect no match
- \ \
- /\S{2,3}/utf
- 12abcd34
- 1234abcd
- \= Expect no match
- \ \
- /\S{2,3}?/utf
- 12abcd34
- 1234abcd
- \= Expect no match
- \ \
- />\s+</utf
- 12> <34
- />\s{2,3}</utf
- ab> <cd
- ab> <ce
- \= Expect no match
- ab> <cd
- />\s{2,3}?</utf
- ab> <cd
- ab> <ce
- \= Expect no match
- ab> <cd
- /\w+/utf
- 12 34
- \= Expect no match
- +++=*!
- /\w{2,3}/utf
- ab cd
- abcd ce
- \= Expect no match
- a.b.c
- /\w{2,3}?/utf
- ab cd
- abcd ce
- \= Expect no match
- a.b.c
- /\W+/utf
- 12====34
- \= Expect no match
- abcd
- /\W{2,3}/utf
- ab====cd
- ab==cd
- \= Expect no match
- a.b.c
- /\W{2,3}?/utf
- ab====cd
- ab==cd
- \= Expect no match
- a.b.c
- /[\x{100}]/utf
- \x{100}
- Z\x{100}
- \x{100}Z
- /[Z\x{100}]/utf
- Z\x{100}
- \x{100}
- \x{100}Z
- /[\x{100}\x{200}]/utf
- ab\x{100}cd
- ab\x{200}cd
- /[\x{100}-\x{200}]/utf
- ab\x{100}cd
- ab\x{200}cd
- ab\x{111}cd
- /[z-\x{200}]/utf
- ab\x{100}cd
- ab\x{200}cd
- ab\x{111}cd
- abzcd
- ab|cd
- /[Q\x{100}\x{200}]/utf
- ab\x{100}cd
- ab\x{200}cd
- Q?
- /[Q\x{100}-\x{200}]/utf
- ab\x{100}cd
- ab\x{200}cd
- ab\x{111}cd
- Q?
- /[Qz-\x{200}]/utf
- ab\x{100}cd
- ab\x{200}cd
- ab\x{111}cd
- abzcd
- ab|cd
- Q?
- /[\x{100}\x{200}]{1,3}/utf
- ab\x{100}cd
- ab\x{200}cd
- ab\x{200}\x{100}\x{200}\x{100}cd
- /[\x{100}\x{200}]{1,3}?/utf
- ab\x{100}cd
- ab\x{200}cd
- ab\x{200}\x{100}\x{200}\x{100}cd
- /[Q\x{100}\x{200}]{1,3}/utf
- ab\x{100}cd
- ab\x{200}cd
- ab\x{200}\x{100}\x{200}\x{100}cd
- /[Q\x{100}\x{200}]{1,3}?/utf
- ab\x{100}cd
- ab\x{200}cd
- ab\x{200}\x{100}\x{200}\x{100}cd
- /(?<=[\x{100}\x{200}])X/utf
- abc\x{200}X
- abc\x{100}X
- \= Expect no match
- X
- /(?<=[Q\x{100}\x{200}])X/utf
- abc\x{200}X
- abc\x{100}X
- abQX
- \= Expect no match
- X
- /(?<=[\x{100}\x{200}]{3})X/utf
- abc\x{100}\x{200}\x{100}X
- \= Expect no match
- abc\x{200}X
- X
- /[^\x{100}\x{200}]X/utf
- AX
- \x{150}X
- \x{500}X
- \= Expect no match
- \x{100}X
- \x{200}X
- /[^Q\x{100}\x{200}]X/utf
- AX
- \x{150}X
- \x{500}X
- \= Expect no match
- \x{100}X
- \x{200}X
- QX
- /[^\x{100}-\x{200}]X/utf
- AX
- \x{500}X
- \= Expect no match
- \x{100}X
- \x{150}X
- \x{200}X
- /[z-\x{100}]/i,utf
- z
- Z
- \x{100}
- \= Expect no match
- \x{102}
- y
- /[\xFF]/
- >\xff<
- /[\xff]/utf
- >\x{ff}<
- /[^\xFF]/
- XYZ
- /[^\xff]/utf
- XYZ
- \x{123}
- /^[ac]*b/utf
- \= Expect no match
- xb
- /^[ac\x{100}]*b/utf
- \= Expect no match
- xb
- /^[^x]*b/i,utf
- \= Expect no match
- xb
- /^[^x]*b/utf
- \= Expect no match
- xb
-
- /^\d*b/utf
- \= Expect no match
- xb
- /(|a)/g,utf
- catac
- a\x{256}a
- /^\x{85}$/i,utf
- \x{85}
- /^abc./gmx,newline=any,utf
- abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
- /abc.$/gmx,newline=any,utf
- abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
- /^a\Rb/bsr=unicode,utf
- a\nb
- a\rb
- a\r\nb
- a\x0bb
- a\x0cb
- a\x{85}b
- a\x{2028}b
- a\x{2029}b
- \= Expect no match
- a\n\rb
- /^a\R*b/bsr=unicode,utf
- ab
- a\nb
- a\rb
- a\r\nb
- a\x0bb
- a\x0c\x{2028}\x{2029}b
- a\x{85}b
- a\n\rb
- a\n\r\x{85}\x0cb
- /^a\R+b/bsr=unicode,utf
- a\nb
- a\rb
- a\r\nb
- a\x0bb
- a\x0c\x{2028}\x{2029}b
- a\x{85}b
- a\n\rb
- a\n\r\x{85}\x0cb
- \= Expect no match
- ab
- /^a\R{1,3}b/bsr=unicode,utf
- a\nb
- a\n\rb
- a\n\r\x{85}b
- a\r\n\r\nb
- a\r\n\r\n\r\nb
- a\n\r\n\rb
- a\n\n\r\nb
- \= Expect no match
- a\n\n\n\rb
- a\r
- /\h+\V?\v{3,4}/utf,no_auto_possess
- \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
- /\V?\v{3,4}/utf,no_auto_possess
- \x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
- /\h+\V?\v{3,4}/utf,no_auto_possess
- >\x09\x20\x{a0}X\x0a\x0a\x0a<
- /\V?\v{3,4}/utf,no_auto_possess
- >\x09\x20\x{a0}X\x0a\x0a\x0a<
- /\H\h\V\v/utf
- X X\x0a
- X\x09X\x0b
- \= Expect no match
- \x{a0} X\x0a
-
- /\H*\h+\V?\v{3,4}/utf,no_auto_possess
- \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
- \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
- \x09\x20\x{a0}\x0a\x0b\x0c
- \= Expect no match
- \x09\x20\x{a0}\x0a\x0b
-
- /\H\h\V\v/utf
- \x{3001}\x{3000}\x{2030}\x{2028}
- X\x{180e}X\x{85}
- \= Expect no match
- \x{2009} X\x0a
-
- /\H*\h+\V?\v{3,4}/utf,no_auto_possess
- \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
- \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
- \x09\x20\x{202f}\x0a\x0b\x0c
- \= Expect no match
- \x09\x{200a}\x{a0}\x{2028}\x0b
-
- /a\Rb/I,bsr=anycrlf,utf
- a\rb
- a\nb
- a\r\nb
- \= Expect no match
- a\x{85}b
- a\x0bb
- /a\Rb/I,bsr=unicode,utf
- a\rb
- a\nb
- a\r\nb
- a\x{85}b
- a\x0bb
-
- /a\R?b/I,bsr=anycrlf,utf
- a\rb
- a\nb
- a\r\nb
- \= Expect no match
- a\x{85}b
- a\x0bb
- /a\R?b/I,bsr=unicode,utf
- a\rb
- a\nb
- a\r\nb
- a\x{85}b
- a\x0bb
-
- /X/newline=any,utf,firstline
- A\x{1ec5}ABCXYZ
- /abcd*/utf
- xxxxabcd\=ps
- xxxxabcd\=ph
- /abcd*/i,utf
- xxxxabcd\=ps
- xxxxabcd\=ph
- XXXXABCD\=ps
- XXXXABCD\=ph
- /abc\d*/utf
- xxxxabc1\=ps
- xxxxabc1\=ph
- /abc[de]*/utf
- xxxxabcde\=ps
- xxxxabcde\=ph
- /\bthe cat\b/utf
- the cat\=ps
- the cat\=ph
- /./newline=crlf,utf
- \r\=ps
- \r\=ph
-
- /.{2,3}/newline=crlf,utf
- \r\=ps
- \r\=ph
- \r\r\=ps
- \r\r\=ph
- \r\r\r\=ps
- \r\r\r\=ph
- /.{2,3}?/newline=crlf,utf
- \r\=ps
- \r\=ph
- \r\r\=ps
- \r\r\=ph
- \r\r\r\=ps
- \r\r\r\=ph
- /[^\x{100}]/utf
- \x{100}\x{101}X
- /[^\x{100}]+/utf
- \x{100}\x{101}X
- /\pL\P{Nd}/utf
- AB
- \= Expect no match
- A0
- 00
- /\X./utf
- AB
- A\x{300}BC
- A\x{300}\x{301}\x{302}BC
- \= Expect no match
- \x{300}
- /\X\X/utf
- ABC
- A\x{300}B\x{300}\x{301}C
- A\x{300}\x{301}\x{302}BC
- \= Expect no match
- \x{300}
- /^\pL+/utf
- abcd
- a
- /^\PL+/utf
- 1234
- =
- \= Expect no match
- abcd
- /^\X+/utf
- abcdA\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}
- a
- \x{300}\x{301}\x{302}
- /\X?abc/utf
- abc
- A\x{300}abc
- A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
- \x{300}abc
- /^\X?abc/utf
- abc
- A\x{300}abc
- \x{300}abc
- \= Expect no match
- A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
- /\X*abc/utf
- abc
- A\x{300}abc
- A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
- \x{300}abc
- /^\X*abc/utf
- abc
- A\x{300}abc
- A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz
- \x{300}abc
- /^\pL?=./utf
- A=b
- =c
- \= Expect no match
- 1=2
- AAAA=b
- /^\pL*=./utf
- AAAA=b
- =c
- \= Expect no match
- 1=2
- /^\X{2,3}X/utf
- A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
- A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X
- \= Expect no match
- X
- A\x{300}\x{301}\x{302}X
- 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
- /^\pC\pL\pM\pN\pP\pS\pZ</utf
- \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
- \np\x{300}9!\$ <
- \= Expect no match
- ap\x{300}9!\$ <
-
- /^\PC/utf
- X
- \= Expect no match
- \x7f
-
- /^\PL/utf
- 9
- \= Expect no match
- \x{c0}
-
- /^\PM/utf
- X
- \= Expect no match
- \x{30f}
-
- /^\PN/utf
- X
- \= Expect no match
- \x{660}
-
- /^\PP/utf
- X
- \= Expect no match
- \x{66c}
-
- /^\PS/utf
- X
- \= Expect no match
- \x{f01}
-
- /^\PZ/utf
- X
- \= Expect no match
- \x{1680}
-
- /^\p{Cc}/utf
- \x{017}
- \x{09f}
- \= Expect no match
- \x{0600}
-
- /^\p{Cf}/utf
- \x{601}
- \x{180e}
- \x{061c}
- \x{2066}
- \x{2067}
- \x{2068}
- \x{2069}
- \= Expect no match
- \x{09f}
-
- /^\p{Cn}/utf
- \= Expect no match
- \x{09f}
-
- /^\p{Co}/utf
- \x{f8ff}
- \= Expect no match
- \x{09f}
-
- /^\p{Cs}/utf
- \x{dfff}\=no_utf_check
- \= Expect no match
- \x{09f}
-
- /^\p{Ll}/utf
- a
- \= Expect no match
- Z
- \x{e000}
-
- /^\p{Lm}/utf
- \x{2b0}
- \= Expect no match
- a
-
- /^\p{Lo}/utf
- \x{1bb}
- \= Expect no match
- a
- \x{2b0}
-
- /^\p{Lt}/utf
- \x{1c5}
- \= Expect no match
- a
- \x{2b0}
-
- /^\p{Lu}/utf
- A
- \= Expect no match
- \x{2b0}
-
- /^\p{Mc}/utf
- \x{903}
- \= Expect no match
- X
- \x{300}
-
- /^\p{Me}/utf
- \x{488}
- \= Expect no match
- X
- \x{903}
- \x{300}
-
- /^\p{Mn}/utf
- \x{300}
- \x{1a1b}
- \= Expect no match
- X
- \x{903}
-
- /^\p{Nd}+/utf,no_auto_possess
- 0123456789\x{660}\x{661}\x{662}\x{663}\x{664}\x{665}\x{666}\x{667}\x{668}\x{669}\x{66a}
- \x{6f0}\x{6f1}\x{6f2}\x{6f3}\x{6f4}\x{6f5}\x{6f6}\x{6f7}\x{6f8}\x{6f9}\x{6fa}
- \x{966}\x{967}\x{968}\x{969}\x{96a}\x{96b}\x{96c}\x{96d}\x{96e}\x{96f}\x{970}
- \= Expect no match
- X
-
- /^\p{Nl}/utf
- \x{16ee}
- \= Expect no match
- X
- \x{966}
-
- /^\p{No}/utf
- \x{b2}
- \x{b3}
- \= Expect no match
- X
- \x{16ee}
-
- /^\p{Pc}/utf
- \x5f
- \x{203f}
- \= Expect no match
- X
- -
- \x{58a}
-
- /^\p{Pd}/utf
- -
- \x{58a}
- \= Expect no match
- X
- \x{203f}
-
- /^\p{Pe}/utf
- )
- ]
- }
- \x{f3b}
- \x{2309}
- \x{230b}
- \= Expect no match
- X
- \x{203f}
- (
- [
- {
- \x{f3c}
- /^\p{Pf}/utf
- \x{bb}
- \x{2019}
- \= Expect no match
- X
- \x{203f}
-
- /^\p{Pi}/utf
- \x{ab}
- \x{2018}
- \= Expect no match
- X
- \x{203f}
-
- /^\p{Po}/utf
- !
- \x{37e}
- \= Expect no match
- X
- \x{203f}
-
- /^\p{Ps}/utf
- (
- [
- {
- \x{f3c}
- \x{2308}
- \x{230a}
- \= Expect no match
- X
- )
- ]
- }
- \x{f3b}
-
- /^\p{Sc}+/utf
- $\x{a2}\x{a3}\x{a4}\x{a5}\x{a6}
- \x{9f2}
- \= Expect no match
- X
- \x{2c2}
-
- /^\p{Sk}/utf
- \x{2c2}
- \= Expect no match
- X
- \x{9f2}
-
- /^\p{Sm}+/utf
- +<|~\x{ac}\x{2044}
- \= Expect no match
- X
- \x{9f2}
-
- /^\p{So}/utf
- \x{a6}
- \x{482}
- \= Expect no match
- X
- \x{9f2}
-
- /^\p{Zl}/utf
- \x{2028}
- \= Expect no match
- X
- \x{2029}
-
- /^\p{Zp}/utf
- \x{2029}
- \= Expect no match
- X
- \x{2028}
-
- /^\p{Zs}/utf
- \ \
- \x{a0}
- \x{1680}
- \x{2000}
- \x{2001}
- \= Expect no match
- \x{2028}
- \x{200d}
-
- /\p{Nd}+(..)/utf
- \x{660}\x{661}\x{662}ABC
-
- /\p{Nd}+?(..)/utf
- \x{660}\x{661}\x{662}ABC
-
- /\p{Nd}{2,}(..)/utf
- \x{660}\x{661}\x{662}ABC
-
- /\p{Nd}{2,}?(..)/utf
- \x{660}\x{661}\x{662}ABC
-
- /\p{Nd}*(..)/utf
- \x{660}\x{661}\x{662}ABC
-
- /\p{Nd}*?(..)/utf
- \x{660}\x{661}\x{662}ABC
-
- /\p{Nd}{2}(..)/utf
- \x{660}\x{661}\x{662}ABC
-
- /\p{Nd}{2,3}(..)/utf
- \x{660}\x{661}\x{662}ABC
-
- /\p{Nd}{2,3}?(..)/utf
- \x{660}\x{661}\x{662}ABC
-
- /\p{Nd}?(..)/utf
- \x{660}\x{661}\x{662}ABC
-
- /\p{Nd}??(..)/utf
- \x{660}\x{661}\x{662}ABC
-
- /\p{Nd}*+(..)/utf
- \x{660}\x{661}\x{662}ABC
-
- /\p{Nd}*+(...)/utf
- \x{660}\x{661}\x{662}ABC
-
- /\p{Nd}*+(....)/utf
- \= Expect no match
- \x{660}\x{661}\x{662}ABC
-
- /\p{Lu}/i,utf
- A
- a\x{10a0}B
- \= Expect no match
- a
- \x{1d00}
- /\p{^Lu}/i,utf
- 1234
- \= Expect no match
- ABC
- /\P{Lu}/i,utf
- 1234
- \= Expect no match
- ABC
- /(?<=A\p{Nd})XYZ/utf
- A2XYZ
- 123A5XYZPQR
- ABA\x{660}XYZpqr
- \= Expect no match
- AXYZ
- XYZ
-
- /(?<!\pL)XYZ/utf
- 1XYZ
- AB=XYZ..
- XYZ
- \= Expect no match
- WXYZ
- /[\p{Nd}]/utf
- 1234
- /[\p{Nd}+-]+/utf
- 1234
- 12-34
- 12+\x{661}-34
- \= Expect no match
- abcd
- /[\P{Nd}]+/utf
- abcd
- \= Expect no match
- 1234
- /\D+/utf,no_auto_possess
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- \= Expect no match
- 11111111111111111111111111111111111111111111111111111111111111111111111
-
- /\P{Nd}+/utf,no_auto_possess
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- \= Expect no match
- 11111111111111111111111111111111111111111111111111111111111111111111111
- /[\D]+/utf,no_auto_possess
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- \= Expect no match
- 11111111111111111111111111111111111111111111111111111111111111111111111
- /[\P{Nd}]+/utf,no_auto_possess
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- \= Expect no match
- 11111111111111111111111111111111111111111111111111111111111111111111111
- /[\D\P{Nd}]+/utf,no_auto_possess
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
- \= Expect no match
- 11111111111111111111111111111111111111111111111111111111111111111111111
- /\pL/utf
- a
- A
- /\pL/i,utf
- a
- A
-
- /\p{Lu}/utf
- A
- aZ
- \= Expect no match
- abc
- /\p{Lu}/i,utf
- A
- aZ
- \= Expect no match
- abc
- /\p{Ll}/utf
- a
- Az
- \= Expect no match
- ABC
- /\p{Ll}/i,utf
- a
- Az
- \= Expect no match
- ABC
- /^\x{c0}$/i,utf
- \x{c0}
- \x{e0}
- /^\x{e0}$/i,utf
- \x{c0}
- \x{e0}
- /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/utf
- A\x{391}\x{10427}\x{ff3a}\x{1fb0}
- \= Expect no match
- a\x{391}\x{10427}\x{ff3a}\x{1fb0}
- A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
- A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
- A\x{391}\x{10427}\x{ff5a}\x{1fb0}
- A\x{391}\x{10427}\x{ff3a}\x{1fb8}
- /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/i,utf
- A\x{391}\x{10427}\x{ff3a}\x{1fb0}
- a\x{391}\x{10427}\x{ff3a}\x{1fb0}
- A\x{3b1}\x{10427}\x{ff3a}\x{1fb0}
- A\x{391}\x{1044F}\x{ff3a}\x{1fb0}
- A\x{391}\x{10427}\x{ff5a}\x{1fb0}
- A\x{391}\x{10427}\x{ff3a}\x{1fb8}
- /\x{391}+/i,utf
- \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}
- /\x{391}{3,5}(.)/i,utf
- \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
- /\x{391}{3,5}?(.)/i,utf
- \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X
- /[\x{391}\x{ff3a}]/i,utf
- \x{391}
- \x{ff3a}
- \x{3b1}
- \x{ff5a}
-
- /[\x{c0}\x{391}]/i,utf
- \x{c0}
- \x{e0}
- /[\x{105}-\x{109}]/i,utf
- \x{104}
- \x{105}
- \x{109}
- \= Expect no match
- \x{100}
- \x{10a}
-
- /[z-\x{100}]/i,utf
- Z
- z
- \x{39c}
- \x{178}
- |
- \x{80}
- \x{ff}
- \x{100}
- \x{101}
- \= Expect no match
- \x{102}
- Y
- y
- /[z-\x{100}]/i,utf
- /^\X/utf
- A
- A\x{300}BC
- A\x{300}\x{301}\x{302}BC
- \x{300}
- /^(\X*)C/utf
- A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
- A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
- /^(\X*?)C/utf
- A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
- A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
- /^(\X*)(.)/utf
- A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
- A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
- /^(\X*?)(.)/utf
- A\x{300}\x{301}\x{302}BCA\x{300}\x{301}
- A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C
- /^\X(.)/utf
- \= Expect no match
- A\x{300}\x{301}\x{302}
- /^\X{2,3}(.)/utf
- A\x{300}\x{301}B\x{300}X
- A\x{300}\x{301}B\x{300}C\x{300}\x{301}
- A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
- A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
-
- /^\X{2,3}?(.)/utf
- A\x{300}\x{301}B\x{300}X
- A\x{300}\x{301}B\x{300}C\x{300}\x{301}
- A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
- A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
- /^\pN{2,3}X/
- 12X
- 123X
- \= Expect no match
- X
- 1X
- 1234X
- /\x{100}/i,utf
- \x{100}
- \x{101}
-
- /^\p{Han}+/utf
- \x{2e81}\x{3007}\x{2f804}\x{31a0}
- \= Expect no match
- \x{2e7f}
- /^\P{Katakana}+/utf
- \x{3105}
- \= Expect no match
- \x{30ff}
- /^[\p{Arabic}]/utf
- \x{06e9}
- \x{060b}
- \= Expect no match
- X\x{06e9}
- /^[\P{Yi}]/utf
- \x{2f800}
- \= Expect no match
- \x{a014}
- \x{a4c6}
- /^\p{Any}X/utf
- AXYZ
- \x{1234}XYZ
- \= Expect no match
- X
-
- /^\P{Any}X/utf
- \= Expect no match
- AX
-
- /^\p{Any}?X/utf
- XYZ
- AXYZ
- \x{1234}XYZ
- \= Expect no match
- ABXYZ
- /^\P{Any}?X/utf
- XYZ
- \= Expect no match
- AXYZ
- \x{1234}XYZ
- ABXYZ
- /^\p{Any}+X/utf
- AXYZ
- \x{1234}XYZ
- A\x{1234}XYZ
- \= Expect no match
- XYZ
- /^\P{Any}+X/utf
- \= Expect no match
- AXYZ
- \x{1234}XYZ
- A\x{1234}XYZ
- XYZ
- /^\p{Any}*X/utf
- XYZ
- AXYZ
- \x{1234}XYZ
- A\x{1234}XYZ
- /^\P{Any}*X/utf
- XYZ
- \= Expect no match
- AXYZ
- \x{1234}XYZ
- A\x{1234}XYZ
- /^[\p{Any}]X/utf
- AXYZ
- \x{1234}XYZ
- \= Expect no match
- X
-
- /^[\P{Any}]X/utf
- \= Expect no match
- AX
-
- /^[\p{Any}]?X/utf
- XYZ
- AXYZ
- \x{1234}XYZ
- \= Expect no match
- ABXYZ
- /^[\P{Any}]?X/utf
- XYZ
- \= Expect no match
- AXYZ
- \x{1234}XYZ
- ABXYZ
- /^[\p{Any}]+X/utf
- AXYZ
- \x{1234}XYZ
- A\x{1234}XYZ
- \= Expect no match
- XYZ
- /^[\P{Any}]+X/utf
- \= Expect no match
- AXYZ
- \x{1234}XYZ
- A\x{1234}XYZ
- XYZ
- /^[\p{Any}]*X/utf
- XYZ
- AXYZ
- \x{1234}XYZ
- A\x{1234}XYZ
- /^[\P{Any}]*X/utf
- XYZ
- \= Expect no match
- AXYZ
- \x{1234}XYZ
- A\x{1234}XYZ
- /^\p{Any}{3,5}?/utf
- abcdefgh
- \x{1234}\n\r\x{3456}xyz
- /^\p{Any}{3,5}/utf
- abcdefgh
- \x{1234}\n\r\x{3456}xyz
- /^\P{Any}{3,5}?/utf
- \= Expect no match
- abcdefgh
- \x{1234}\n\r\x{3456}xyz
- /^\p{L&}X/utf
- AXY
- aXY
- \x{1c5}XY
- \= Expect no match
- \x{1bb}XY
- \x{2b0}XY
- !XY
- /^[\p{L&}]X/utf
- AXY
- aXY
- \x{1c5}XY
- \= Expect no match
- \x{1bb}XY
- \x{2b0}XY
- !XY
- /^\p{L&}+X/utf
- AXY
- aXY
- AbcdeXyz
- \x{1c5}AbXY
- abcDEXypqreXlmn
- \= Expect no match
- \x{1bb}XY
- \x{2b0}XY
- !XY
- /^[\p{L&}]+X/utf
- AXY
- aXY
- AbcdeXyz
- \x{1c5}AbXY
- abcDEXypqreXlmn
- \= Expect no match
- \x{1bb}XY
- \x{2b0}XY
- !XY
- /^\p{L&}+?X/utf
- AXY
- aXY
- AbcdeXyz
- \x{1c5}AbXY
- abcDEXypqreXlmn
- \= Expect no match
- \x{1bb}XY
- \x{2b0}XY
- !XY
- /^[\p{L&}]+?X/utf
- AXY
- aXY
- AbcdeXyz
- \x{1c5}AbXY
- abcDEXypqreXlmn
- \= Expect no match
- \x{1bb}XY
- \x{2b0}XY
- !XY
- /^\P{L&}X/utf
- !XY
- \x{1bb}XY
- \x{2b0}XY
- \= Expect no match
- \x{1c5}XY
- AXY
- /^[\P{L&}]X/utf
- !XY
- \x{1bb}XY
- \x{2b0}XY
- \= Expect no match
- \x{1c5}XY
- AXY
- /^\x{023a}+?(\x{0130}+)/i,utf
- \x{023a}\x{2c65}\x{0130}
-
- /^\x{023a}+([^X])/i,utf
- \x{023a}\x{2c65}X
-
- /\x{c0}+\x{116}+/i,utf
- \x{c0}\x{e0}\x{116}\x{117}
- /[\x{c0}\x{116}]+/i,utf
- \x{c0}\x{e0}\x{116}\x{117}
- # Check property support in non-UTF-8 mode
-
- /\p{L}{4}/
- 123abcdefg
- 123abc\xc4\xc5zz
- /\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
- \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}====
- /\x{a77d}\x{1d79}/i,utf
- \x{a77d}\x{1d79}
- \x{1d79}\x{a77d}
- /\x{a77d}\x{1d79}/utf
- \x{a77d}\x{1d79}
- \= Expect no match
- \x{1d79}\x{a77d}
- /^\p{Xan}/utf
- ABCD
- 1234
- \x{6ca}
- \x{a6c}
- \x{10a7}
- \= Expect no match
- _ABC
- /^\p{Xan}+/utf
- ABCD1234\x{6ca}\x{a6c}\x{10a7}_
- \= Expect no match
- _ABC
- /^\p{Xan}*/utf
- ABCD1234\x{6ca}\x{a6c}\x{10a7}_
-
- /^\p{Xan}{2,9}/utf
- ABCD1234\x{6ca}\x{a6c}\x{10a7}_
-
- /^[\p{Xan}]/utf
- ABCD1234_
- 1234abcd_
- \x{6ca}
- \x{a6c}
- \x{10a7}
- \= Expect no match
- _ABC
-
- /^[\p{Xan}]+/utf
- ABCD1234\x{6ca}\x{a6c}\x{10a7}_
- \= Expect no match
- _ABC
- /^>\p{Xsp}/utf
- >\x{1680}\x{2028}\x{0b}
- \= Expect no match
- \x{0b}
- /^>\p{Xsp}+/utf,no_auto_possess
- > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
- /^>\p{Xsp}*/utf,no_auto_possess
- > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
-
- /^>\p{Xsp}{2,9}/utf,no_auto_possess
- > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
-
- /^>[\p{Xsp}]/utf,no_auto_possess
- >\x{2028}\x{0b}
-
- /^>[\p{Xsp}]+/utf,no_auto_possess
- > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
- /^>\p{Xps}/utf
- >\x{1680}\x{2028}\x{0b}
- >\x{a0}
- \= Expect no match
- \x{0b}
- /^>\p{Xps}+/utf
- > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
- /^>\p{Xps}+?/utf
- >\x{1680}\x{2028}\x{0b}
- /^>\p{Xps}*/utf
- > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
-
- /^>\p{Xps}{2,9}/utf
- > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
-
- /^>\p{Xps}{2,9}?/utf
- > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
-
- /^>[\p{Xps}]/utf
- >\x{2028}\x{0b}
-
- /^>[\p{Xps}]+/utf
- > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b}
- /^\p{Xwd}/utf
- ABCD
- 1234
- \x{6ca}
- \x{a6c}
- \x{10a7}
- _ABC
- \= Expect no match
- []
- /^\p{Xwd}+/utf
- ABCD1234\x{6ca}\x{a6c}\x{10a7}_
- /^\p{Xwd}*/utf
- ABCD1234\x{6ca}\x{a6c}\x{10a7}_
-
- /^\p{Xwd}{2,9}/utf
- A_12\x{6ca}\x{a6c}\x{10a7}
-
- /^[\p{Xwd}]/utf
- ABCD1234_
- 1234abcd_
- \x{6ca}
- \x{a6c}
- \x{10a7}
- _ABC
- \= Expect no match
- []
-
- /^[\p{Xwd}]+/utf
- ABCD1234\x{6ca}\x{a6c}\x{10a7}_
- # Unicode properties for \b and \B
- /\b...\B/utf,ucp
- abc_
- \x{37e}abc\x{376}
- \x{37e}\x{376}\x{371}\x{393}\x{394}
- !\x{c0}++\x{c1}\x{c2}
- !\x{c0}+++++
- # Without PCRE_UCP, non-ASCII always fail, even if < 256
- /\b...\B/utf
- abc_
- \= Expect no match
- \x{37e}abc\x{376}
- \x{37e}\x{376}\x{371}\x{393}\x{394}
- !\x{c0}++\x{c1}\x{c2}
- !\x{c0}+++++
- # With PCRE_UCP, non-UTF8 chars that are < 256 still check properties
- /\b...\B/ucp
- abc_
- !\x{c0}++\x{c1}\x{c2}
- !\x{c0}+++++
-
- # Caseless single negated characters > 127 need UCP support
- /[^\x{100}]/i,utf
- \x{100}\x{101}X
- /[^\x{100}]+/i,utf
- \x{100}\x{101}XX
- /^\X/utf
- A\=ps
- A\=ph
- A\x{300}\x{301}\=ps
- A\x{300}\x{301}\=ph
- A\x{301}\=ps
- A\x{301}\=ph
-
- /^\X{2,3}/utf
- A\=ps
- A\=ph
- AA\=ps
- AA\=ph
- A\x{300}\x{301}\=ps
- A\x{300}\x{301}\=ph
- A\x{300}\x{301}A\x{300}\x{301}\=ps
- A\x{300}\x{301}A\x{300}\x{301}\=ph
- /^\X{2}/utf
- AA\=ps
- AA\=ph
- A\x{300}\x{301}A\x{300}\x{301}\=ps
- A\x{300}\x{301}A\x{300}\x{301}\=ph
-
- /^\X+/utf
- AA\=ps
- AA\=ph
- /^\X+?Z/utf
- AA\=ps
- AA\=ph
- # These are tests for extended grapheme clusters
- /^\X/utf,aftertext
- G\x{34e}\x{34e}X
- \x{34e}\x{34e}X
- \x04X
- \x{1100}X
- \x{1100}\x{34e}X
- \x{1b04}\x{1b04}X
- \= These match up to the roman letters
- \x{1111}\x{1111}L,L
- \x{1111}\x{1111}\x{1169}L,L,V
- \x{1111}\x{ae4c}L, LV
- \x{1111}\x{ad89}L, LVT
- \x{1111}\x{ae4c}\x{1169}L, LV, V
- \x{1111}\x{ae4c}\x{1169}\x{1169}L, LV, V, V
- \x{1111}\x{ae4c}\x{1169}\x{11fe}L, LV, V, T
- \x{1111}\x{ad89}\x{11fe}L, LVT, T
- \x{1111}\x{ad89}\x{11fe}\x{11fe}L, LVT, T, T
- \x{ad89}\x{11fe}\x{11fe}LVT, T, T
- \= These match just the first codepoint (invalid sequence)
- \x{1111}\x{11fe}L, T
- \x{ae4c}\x{1111}LV, L
- \x{ae4c}\x{ae4c}LV, LV
- \x{ae4c}\x{ad89}LV, LVT
- \x{1169}\x{1111}V, L
- \x{1169}\x{ae4c}V, LV
- \x{1169}\x{ad89}V, LVT
- \x{ad89}\x{1111}LVT, L
- \x{ad89}\x{1169}LVT, V
- \x{ad89}\x{ae4c}LVT, LV
- \x{ad89}\x{ad89}LVT, LVT
- \x{11fe}\x{1111}T, L
- \x{11fe}\x{1169}T, V
- \x{11fe}\x{ae4c}T, LV
- \x{11fe}\x{ad89}T, LVT
- \= Test extend and spacing mark
- \x{1111}\x{ae4c}\x{0711}L, LV, extend
- \x{1111}\x{ae4c}\x{1b04}L, LV, spacing mark
- \x{1111}\x{ae4c}\x{1b04}\x{0711}\x{1b04}L, LV, spacing mark, extend, spacing mark
- \= Test CR, LF, and control
- \x0d\x{0711}CR, extend
- \x0d\x{1b04}CR, spacingmark
- \x0a\x{0711}LF, extend
- \x0a\x{1b04}LF, spacingmark
- \x0b\x{0711}Control, extend
- \x09\x{1b04}Control, spacingmark
- \= There are no Prepend characters, so we can't test Prepend, CR
-
- /^(?>\X{2})X/utf,aftertext
- \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
-
- /^\X{2,4}X/utf,aftertext
- \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
- \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
- \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
- /^\X{2,4}?X/utf,aftertext
- \x{1111}\x{ae4c}\x{1111}\x{ae4c}X
- \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
- \x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}\x{1111}\x{ae4c}X
- /\x{1e9e}+/i,utf
- \x{1e9e}\x{00df}
- /[z\x{1e9e}]+/i,utf
- \x{1e9e}\x{00df}
- /\x{00df}+/i,utf
- \x{1e9e}\x{00df}
- /[z\x{00df}]+/i,utf
- \x{1e9e}\x{00df}
- /\x{1f88}+/i,utf
- \x{1f88}\x{1f80}
- /[z\x{1f88}]+/i,utf
- \x{1f88}\x{1f80}
- # Perl matches these
- /\x{00b5}+/i,utf
- \x{00b5}\x{039c}\x{03bc}
- /\x{039c}+/i,utf
- \x{00b5}\x{039c}\x{03bc}
- /\x{03bc}+/i,utf
- \x{00b5}\x{039c}\x{03bc}
- /\x{00c5}+/i,utf
- \x{00c5}\x{00e5}\x{212b}
- /\x{00e5}+/i,utf
- \x{00c5}\x{00e5}\x{212b}
- /\x{212b}+/i,utf
- \x{00c5}\x{00e5}\x{212b}
- /\x{01c4}+/i,utf
- \x{01c4}\x{01c5}\x{01c6}
- /\x{01c5}+/i,utf
- \x{01c4}\x{01c5}\x{01c6}
- /\x{01c6}+/i,utf
- \x{01c4}\x{01c5}\x{01c6}
- /\x{01c7}+/i,utf
- \x{01c7}\x{01c8}\x{01c9}
- /\x{01c8}+/i,utf
- \x{01c7}\x{01c8}\x{01c9}
- /\x{01c9}+/i,utf
- \x{01c7}\x{01c8}\x{01c9}
- /\x{01ca}+/i,utf
- \x{01ca}\x{01cb}\x{01cc}
- /\x{01cb}+/i,utf
- \x{01ca}\x{01cb}\x{01cc}
- /\x{01cc}+/i,utf
- \x{01ca}\x{01cb}\x{01cc}
- /\x{01f1}+/i,utf
- \x{01f1}\x{01f2}\x{01f3}
- /\x{01f2}+/i,utf
- \x{01f1}\x{01f2}\x{01f3}
- /\x{01f3}+/i,utf
- \x{01f1}\x{01f2}\x{01f3}
- /\x{0345}+/i,utf
- \x{0345}\x{0399}\x{03b9}\x{1fbe}
- /\x{0399}+/i,utf
- \x{0345}\x{0399}\x{03b9}\x{1fbe}
- /\x{03b9}+/i,utf
- \x{0345}\x{0399}\x{03b9}\x{1fbe}
- /\x{1fbe}+/i,utf
- \x{0345}\x{0399}\x{03b9}\x{1fbe}
- /\x{0392}+/i,utf
- \x{0392}\x{03b2}\x{03d0}
- /\x{03b2}+/i,utf
- \x{0392}\x{03b2}\x{03d0}
- /\x{03d0}+/i,utf
- \x{0392}\x{03b2}\x{03d0}
-
- /\x{0395}+/i,utf
- \x{0395}\x{03b5}\x{03f5}
- /\x{03b5}+/i,utf
- \x{0395}\x{03b5}\x{03f5}
- /\x{03f5}+/i,utf
- \x{0395}\x{03b5}\x{03f5}
- /\x{0398}+/i,utf
- \x{0398}\x{03b8}\x{03d1}\x{03f4}
- /\x{03b8}+/i,utf
- \x{0398}\x{03b8}\x{03d1}\x{03f4}
- /\x{03d1}+/i,utf
- \x{0398}\x{03b8}\x{03d1}\x{03f4}
- /\x{03f4}+/i,utf
- \x{0398}\x{03b8}\x{03d1}\x{03f4}
- /\x{039a}+/i,utf
- \x{039a}\x{03ba}\x{03f0}
- /\x{03ba}+/i,utf
- \x{039a}\x{03ba}\x{03f0}
- /\x{03f0}+/i,utf
- \x{039a}\x{03ba}\x{03f0}
-
- /\x{03a0}+/i,utf
- \x{03a0}\x{03c0}\x{03d6}
- /\x{03c0}+/i,utf
- \x{03a0}\x{03c0}\x{03d6}
- /\x{03d6}+/i,utf
- \x{03a0}\x{03c0}\x{03d6}
- /\x{03a1}+/i,utf
- \x{03a1}\x{03c1}\x{03f1}
- /\x{03c1}+/i,utf
- \x{03a1}\x{03c1}\x{03f1}
- /\x{03f1}+/i,utf
- \x{03a1}\x{03c1}\x{03f1}
- /\x{03a3}+/i,utf
- \x{03A3}\x{03C2}\x{03C3}
- /\x{03c2}+/i,utf
- \x{03A3}\x{03C2}\x{03C3}
- /\x{03c3}+/i,utf
- \x{03A3}\x{03C2}\x{03C3}
- /\x{03a6}+/i,utf
- \x{03a6}\x{03c6}\x{03d5}
- /\x{03c6}+/i,utf
- \x{03a6}\x{03c6}\x{03d5}
- /\x{03d5}+/i,utf
- \x{03a6}\x{03c6}\x{03d5}
- /\x{03c9}+/i,utf
- \x{03c9}\x{03a9}\x{2126}
- /\x{03a9}+/i,utf
- \x{03c9}\x{03a9}\x{2126}
- /\x{2126}+/i,utf
- \x{03c9}\x{03a9}\x{2126}
-
- /\x{1e60}+/i,utf
- \x{1e60}\x{1e61}\x{1e9b}
- /\x{1e61}+/i,utf
- \x{1e60}\x{1e61}\x{1e9b}
- /\x{1e9b}+/i,utf
- \x{1e60}\x{1e61}\x{1e9b}
-
- /\x{1e9e}+/i,utf
- \x{1e9e}\x{00df}
- /\x{00df}+/i,utf
- \x{1e9e}\x{00df}
-
- /\x{1f88}+/i,utf
- \x{1f88}\x{1f80}
- /\x{1f80}+/i,utf
- \x{1f88}\x{1f80}
- /\x{004b}+/i,utf
- \x{004b}\x{006b}\x{212a}
- /\x{006b}+/i,utf
- \x{004b}\x{006b}\x{212a}
- /\x{212a}+/i,utf
- \x{004b}\x{006b}\x{212a}
- /\x{0053}+/i,utf
- \x{0053}\x{0073}\x{017f}
- /\x{0073}+/i,utf
- \x{0053}\x{0073}\x{017f}
- /\x{017f}+/i,utf
- \x{0053}\x{0073}\x{017f}
- /ist/i,utf
- \= Expect no match
- ikt
- /is+t/i,utf
- iSs\x{17f}t
- \= Expect no match
- ikt
- /is+?t/i,utf
- \= Expect no match
- ikt
- /is?t/i,utf
- \= Expect no match
- ikt
- /is{2}t/i,utf
- \= Expect no match
- iskt
- /^\p{Xuc}/utf
- $abc
- @abc
- `abc
- \x{1234}abc
- \= Expect no match
- abc
- /^\p{Xuc}+/utf
- $@`\x{a0}\x{1234}\x{e000}**
- \= Expect no match
- \x{9f}
- /^\p{Xuc}+?/utf
- $@`\x{a0}\x{1234}\x{e000}**
- \= Expect no match
- \x{9f}
- /^\p{Xuc}+?\*/utf
- $@`\x{a0}\x{1234}\x{e000}**
- \= Expect no match
- \x{9f}
- /^\p{Xuc}++/utf
- $@`\x{a0}\x{1234}\x{e000}**
- \= Expect no match
- \x{9f}
- /^\p{Xuc}{3,5}/utf
- $@`\x{a0}\x{1234}\x{e000}**
- \= Expect no match
- \x{9f}
- /^\p{Xuc}{3,5}?/utf
- $@`\x{a0}\x{1234}\x{e000}**
- \= Expect no match
- \x{9f}
- /^[\p{Xuc}]/utf
- $@`\x{a0}\x{1234}\x{e000}**
- \= Expect no match
- \x{9f}
- /^[\p{Xuc}]+/utf
- $@`\x{a0}\x{1234}\x{e000}**
- \= Expect no match
- \x{9f}
- /^\P{Xuc}/utf
- abc
- \= Expect no match
- $abc
- @abc
- `abc
- \x{1234}abc
- /^[\P{Xuc}]/utf
- abc
- \= Expect no match
- $abc
- @abc
- `abc
- \x{1234}abc
- /^A\s+Z/utf,ucp
- A\x{2005}Z
- A\x{85}\x{180e}\x{2005}Z
- /^A[\s]+Z/utf,ucp
- A\x{2005}Z
- A\x{85}\x{180e}\x{2005}Z
- /(?<=\x{100})\x{200}(?=\x{300})/utf,allusedtext
- \x{100}\x{200}\x{300}
- # -----------------------------------------------------------------------------
- # Tests for bidi control and bidi class properties
- /\p{ bidi_control }/utf
- -->\x{202c}<--
- /\p{bidicontrol}+/utf
- -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
- -->\x{2066}\x{2067}\x{2068}\x{2069}<--
- /\p{bidicontrol}+?/utf
- -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
- -->\x{2066}\x{2067}\x{2068}\x{2069}<--
- /\p{bidicontrol}++/utf
- -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
- -->\x{2066}\x{2067}\x{2068}\x{2069}<--
- /[\p{bidi_control}]/utf
- -->\x{202c}<--
- /[\p{bidicontrol}]+/utf
- -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
- -->\x{2066}\x{2067}\x{2068}\x{2069}<--
- /[\p{bidicontrol}]+?/utf
- -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
- -->\x{2066}\x{2067}\x{2068}\x{2069}<--
- /[\p{bidicontrol}]++/utf
- -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
- -->\x{2066}\x{2067}\x{2068}\x{2069}<--
- /[\p{bidicontrol}<>]+/utf
- -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
- -->\x{2066}\x{2067}\x{2068}\x{2069}<--
- /\P{bidicontrol}+/g,utf
- -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
- -->\x{2066}\x{2067}\x{2068}\x{2069}<--
- /\p{^bidicontrol}+/g,utf
- -->\x{061c}\x{200e}\x{200f}\x{202a}\x{202b}\x{202c}\x{202d}<--
- -->\x{2066}\x{2067}\x{2068}\x{2069}<--
- /\p{bidi class = al}/utf
- -->\x{061D}<--
- /\p{bidi class = al}+/utf
- -->\x{061D}\x{061e}\x{061f}<--
- /\p{bidi_class : AL}+?/utf
- -->\x{061D}\x{061e}\x{061f}<--
- /\p{Bidi_Class : AL}++/utf
- -->\x{061D}\x{061e}\x{061f}<--
- /\p{bidi class = aN}+/utf
- -->\x{061D}\x{0602}\x{0604}\x{061f}<--
- /\p{bidi class = B}+/utf
- -->\x{0a}\x{0d}\x{01c}\x{01e}\x{085}\x{2029}<--
- /\p{bidi class:BN}+/utf
- -->\x{0}\x{08}\x{200c}\x{fffe}\x{dfffe}\x{10ffff}<--
- /\p{bidiclass:cs}+/utf
- -->,.\x{060c}\x{ff1a}<--
- /\p{bidiclass:En}+/utf
- -->09\x{b2}\x{2074}\x{1fbf9}<--
- /\p{bidiclass:es}+/utf
- ==>+-\x{207a}\x{ff0d}<==
- /\p{bidiclass:et}+/utf
- -->#\{24}%\x{a2}\x{A838}\x{1e2ff}<--
- /\p{bidiclass:FSI}+/utf
- -->\x{2068}<--
- /\p{bidi class:L}+/utf
- -->ABC<--
- /\P{bidi class:L}+/utf
- -->ABC<--
- /\p{bidi class:LRE}+\p{bidiclass=lri}*\p{bidiclass:lro}/utf
- -->\x{202a}\x{2066}\x{202d}<--
- /\p{bidi class:NSM}+/utf
- -->\x{9bc}\x{a71}\x{e31}<--
- /\p{bidi class:ON}+/utf
- -->\x{21}'()*;@\x{384}\x{2039}<=-
- /\p{bidiclass:pdf}\p{bidiclass:pdi}/utf
- -->\x{202c}\x{2069}<--
- /\p{bidi class:R}+/utf
- -->\x{590}\x{5c6}\x{200f}\x{10805}<--
- /\p{bidi class:RLE}+\p{bidi class:RLI}*\p{bidi class:RLO}+/utf
- -->\x{202b}\x{2067}\x{202e}<--
-
- /\p{bidi class:S}+\p{bidiclass:WS}+/utf
- -->\x{9}\x{b}\x{1f} \x{c} \x{2000} \x{3000}<--
- # -----------------------------------------------------------------------------
- /\p{katakana}/utf
- \x{30a1}
- \x{3001}
- /\p{scx:katakana}/utf
- \x{30a1}
- \x{3001}
-
- /\p{script extensions:katakana}/utf
- \x{30a1}
- \x{3001}
-
- /\p{sc:katakana}/utf
- \x{30a1}
- \= Expect no match
- \x{3001}
-
- /\p{script:katakana}/utf
- \x{30a1}
- \= Expect no match
- \x{3001}
-
- /\p{sc:katakana}{3,}/utf
- \x{30a1}\x{30fa}\x{32d0}\x{1b122}\x{ff66}\x{3001}ABC
- /\p{sc:katakana}{3,}?/utf
- \x{30a1}\x{30fa}\x{32d0}\x{1b122}\x{ff66}\x{3001}ABC
- # Tests for PCRE2_EXTRA_CASELESS_RESTRICT. Compare each test with and without
- # the restriction.
- /AskZ/i,utf,caseless_restrict
- AskZ
- aSKz
- \= Expect no match
- A\x{17f}kZ
- As\x{212a}Z
- /AskZ/i,utf
- AskZ
- aSKz
- A\x{17f}kZ
- As\x{212a}Z
- /A\x{17f}\x{212a}Z/ir,utf
- \= Expect no match
- AskZ
- /A\x{17f}\x{212a}Z/i,utf
- AskZ
- /[AskZ]+/i,utf,caseless_restrict
- AskZ
- aSKz
- A\x{17f}kZ
- As\x{212a}Z
- /[AskZ]+/i,utf
- AskZ
- aSKz
- A\x{17f}kZ
- As\x{212a}Z
- /[\x{17f}\x{212a}]+/ir,utf
- \= Expect no match
- AskZ
- /[\x{17f}\x{212a}]+/i,utf
- AskZ
- /[^s]+/ir,utf
- A\x{17f}Z
- /[^s]+/i,utf
- A\x{17f}Z
- /[^k]+/ir,utf
- A\x{212a}Z
-
- /[^k]+/i,utf
- A\x{212a}Z
-
- /[^sk]+/ir,utf
- A\x{17f}\x{212a}Z
- /[^sk]+/i,utf
- A\x{17f}\x{212a}Z
- /[^\x{17f}]+/ir,utf
- AsSZ
- /[^\x{17f}]+/i,utf
- AsSZ
- /[Ss]+/irB,utf
- Sss\x{17f}ss
- /[Ss]+/iB,utf
- Sss\x{17f}ss
- /[S\x{17f}]/irB,utf
- /[S\x{17f}]/iB,utf
- /[\x{17f}s]/irB,utf
- /[\x{17f}s]/iB,utf
- /[\x{4b}\x{6b}]/irB,utf
- /[\x{4b}\x{6b}]/iB,utf
- /s(?r)s(?-r)s(?r:s)s/i,utf
- \x{17f}S\x{17f}S\x{17f}
- \= Expect no match
- \x{17f}\x{17f}\x{17f}S\x{17f}
- \x{17f}S\x{17f}\x{17f}\x{17f}
- /k(?^i)k/ir,utf
- K\x{212a}
- \= Expect no match
- \x{212a}\x{212a}
- # End caseless restrict tests
- # TESTS for PCRE2_EXTRA_ASCII_xxx - again, tests with and without.
- # DIGITS
- /\d+/i,utf
- 123\x{660}456
- /\d+/i,utf,ucp
- 123\x{660}456
- /\d+/i,utf,ucp,ascii_bsd
- 123\x{660}456
- /[\d]+/i,utf
- 123\x{660}456
- /[\d]+/i,utf,ucp
- 123\x{660}456
- /[\d]+/i,utf,ucp,ascii_bsd
- 123\x{660}456
- /\d(?aD)\d(?-aD)\d/utf,ucp
- \x{660}9\x{660}
- \= Expect no match
- \x{660}\x{660}\x{660}
- /\d(?-aD)\d(?aD)\d/utf,ucp,ascii_bsd
- 999
- 9\x{660}9
- /\d(?a)\d(?-a)\d/utf,ucp
- \x{660}9\x{660}
- \= Expect no match
- \x{660}\x{660}\x{660}
- /\d(?-aD)\d(?aD)\d/utf,ucp,ascii_bsd
- 999
- 9\x{660}9
- # SPACES
- />\s+</i,utf
- > <
- \= Expect no match
- >\x{a0} <
- />\s+</i,utf,ucp
- > <
- >\x{a0} <
- />\s+</i,utf,ucp,ascii_bss
- > <
- \= Expect no match
- >\x{a0} <
- />[\s]+</i,utf
- > <
- \= Expect no match
- >\x{a0} <
- />[\s]+</i,utf,ucp
- > <
- >\x{a0} <
- />[\s]+</i,utf,ucp,ascii_bss
- > <
- \= Expect no match
- >\x{a0} <
- />\s(?aS)\s(?-aS)\s</utf,ucp
- >\x{a0} \x{a0}<
- \= Expect no match
- >\x{a0}\x{a0}\x{a0}<
- />\s(?a)\s(?-a)\s</utf,ucp
- >\x{a0} \x{a0}<
- \= Expect no match
- >\x{a0}\x{a0}\x{a0}<
-
- # WORDS
- /\w+/i,utf
- 123\x{660}abc
- /\w+/i,utf,ucp
- 123\x{660}abc
- /\w+/i,utf,ucp,ascii_bsw
- 123\x{660}abc
- /[\w]+/i,utf
- 123\x{660}abc
- /[\w]+/i,utf,ucp
- 123\x{660}abc
- /[\w]+/i,utf,ucp,ascii_bsw
- 123\x{660}abc
- /\w(?aW)\w(?-aW)\w/utf,ucp
- \x{660}A\x{c0}
- \= Expect no match
- \x{660}\x{c0}\x{c0}
- /\w(?a)\w(?-a)\w/utf,ucp
- \x{660}A\x{c0}
- \= Expect no match
- \x{660}\x{c0}\x{c0}
- # POSIX
- /^[[:digit:]]+$/utf,ucp
- 123456
- 123\x{660}456
- /^[[:digit:]]+$/utf,ucp,ascii_digit
- 123456
- \= Expect no match
- 123\x{660}456
- /[[:digit:]]+/g,utf,ucp,ascii_digit
- 123\x{660}456
- /(?-aT)[[:digit:]](?aT)[[:digit:]]/utf,ucp,ascii_digit
- 11
- \x{ff11}1
- \= Expect no match
- 1\x{ff11}
- /(?-aT:[[:digit:]])[[:digit:]]/utf,ucp,ascii_digit
- 11
- \x{ff11}1
- \= Expect no match
- 1\x{ff11}
- /(?-aT:[[:digit:]])[[:digit:]]/utf,never_ucp,ascii_digit
- 11
- \= Expect no match
- \x{ff11}1
- 1\x{ff11}
- /[[:digit:]]+/utf,ucp,ascii_posix
- 123\x{660}456
- /(?-aP)[[:digit:]](?aP)[[:digit:]]/utf,ucp,ascii_posix
- 11
- \x{ff11}1
- \= Expect no match
- 1\x{ff11}
- /(?-aP:[[:digit:]])[[:digit:]]/utf,ucp,ascii_posix
- 11
- \x{ff11}1
- \= Expect no match
- 1\x{ff11}
- /(?-a:[[:digit:]])[[:digit:]]/a,utf,ucp
- 11
- \x{ff11}1
- \= Expect no match
- 1\x{ff11}
- />[[:space:]]+</utf,ucp
- >\x{a0} \x{a0}<
- >\x{a0}\x{a0}\x{a0}<
- />[[:space:]]+</utf,ucp,ascii_posix
- \= Expect no match
- >\x{a0} \x{a0}<
- /(?aP)[[:alnum:]]+/i,ucp,utf
- abcáxyz
- abc\x{660}xyz
- /(?aP)[[:alnum:]\d]+/i,ucp,utf
- abc\x{660}xyz
-
- /(*UCP)(*UTF)[[:alnum:]](?aP:[[:alnum:]])[[:alnum:]]/
- \x{660}A\x{660}
- \= Expect no match
- \x{660}\x{660}\x{660}
-
- # VARIOUS
- /[\d\s\w]+/a,ucp,utf
- 9 A\x{660}À
- 9 AÀ\x{660}
- # End PCRE2_EXTRA_ASCII_xxx tests
- /\w+/utf,ucp
- --cafe\x{300}_au\x{203f}lait!
- /[\w]+/utf,ucp
- --cafe\x{300}_au\x{203f}lait!
- /\b.+?\b/utf,ucp
- --cafe\x{300}_au\x{203f}lait!
- /caf\B.+?\B/utf,ucp
- --cafe\x{300}_au\x{203f}lait!
- # End of testinput7
|