testoutput2 286 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728
  1. /-- This set of tests is not Perl-compatible. It checks on special features
  2. of PCRE's API, error diagnostics, and the compiled code of some patterns.
  3. It also checks the non-Perl syntax the PCRE supports (Python, .NET,
  4. Oniguruma). Finally, there are some tests where PCRE and Perl differ,
  5. either because PCRE can't be compatible, or there is a possible Perl
  6. bug.
  7. NOTE: This is a non-UTF set of tests. When UTF support is needed, use
  8. test 5, and if Unicode Property Support is needed, use test 7. --/
  9. < forbid 8W
  10. /(a)b|/I
  11. Capturing subpattern count = 1
  12. May match empty string
  13. No options
  14. No first char
  15. No need char
  16. /abc/I
  17. Capturing subpattern count = 0
  18. No options
  19. First char = 'a'
  20. Need char = 'c'
  21. abc
  22. 0: abc
  23. defabc
  24. 0: abc
  25. \Aabc
  26. 0: abc
  27. *** Failers
  28. No match
  29. \Adefabc
  30. No match
  31. ABC
  32. No match
  33. /^abc/I
  34. Capturing subpattern count = 0
  35. Options: anchored
  36. No first char
  37. No need char
  38. abc
  39. 0: abc
  40. \Aabc
  41. 0: abc
  42. *** Failers
  43. No match
  44. defabc
  45. No match
  46. \Adefabc
  47. No match
  48. /a+bc/I
  49. Capturing subpattern count = 0
  50. No options
  51. First char = 'a'
  52. Need char = 'c'
  53. /a*bc/I
  54. Capturing subpattern count = 0
  55. No options
  56. No first char
  57. Need char = 'c'
  58. /a{3}bc/I
  59. Capturing subpattern count = 0
  60. No options
  61. First char = 'a'
  62. Need char = 'c'
  63. /(abc|a+z)/I
  64. Capturing subpattern count = 1
  65. No options
  66. First char = 'a'
  67. No need char
  68. /^abc$/I
  69. Capturing subpattern count = 0
  70. Options: anchored
  71. No first char
  72. No need char
  73. abc
  74. 0: abc
  75. *** Failers
  76. No match
  77. def\nabc
  78. No match
  79. /ab\idef/X
  80. Failed: unrecognized character follows \ at offset 3
  81. /(?X)ab\idef/X
  82. Failed: unrecognized character follows \ at offset 7
  83. /x{5,4}/
  84. Failed: numbers out of order in {} quantifier at offset 5
  85. /z{65536}/
  86. Failed: number too big in {} quantifier at offset 7
  87. /[abcd/
  88. Failed: missing terminating ] for character class at offset 5
  89. /(?X)[\B]/
  90. Failed: invalid escape sequence in character class at offset 6
  91. /(?X)[\R]/
  92. Failed: invalid escape sequence in character class at offset 6
  93. /(?X)[\X]/
  94. Failed: invalid escape sequence in character class at offset 6
  95. /[\B]/BZ
  96. ------------------------------------------------------------------
  97. Bra
  98. B
  99. Ket
  100. End
  101. ------------------------------------------------------------------
  102. /[\R]/BZ
  103. ------------------------------------------------------------------
  104. Bra
  105. R
  106. Ket
  107. End
  108. ------------------------------------------------------------------
  109. /[\X]/BZ
  110. ------------------------------------------------------------------
  111. Bra
  112. X
  113. Ket
  114. End
  115. ------------------------------------------------------------------
  116. /[z-a]/
  117. Failed: range out of order in character class at offset 3
  118. /^*/
  119. Failed: nothing to repeat at offset 1
  120. /(abc/
  121. Failed: missing ) at offset 4
  122. /(?# abc/
  123. Failed: missing ) after comment at offset 7
  124. /(?z)abc/
  125. Failed: unrecognized character after (? or (?- at offset 2
  126. /.*b/I
  127. Capturing subpattern count = 0
  128. No options
  129. First char at start or follows newline
  130. Need char = 'b'
  131. /.*?b/I
  132. Capturing subpattern count = 0
  133. No options
  134. First char at start or follows newline
  135. Need char = 'b'
  136. /cat|dog|elephant/I
  137. Capturing subpattern count = 0
  138. No options
  139. No first char
  140. No need char
  141. this sentence eventually mentions a cat
  142. 0: cat
  143. this sentences rambles on and on for a while and then reaches elephant
  144. 0: elephant
  145. /cat|dog|elephant/IS
  146. Capturing subpattern count = 0
  147. No options
  148. No first char
  149. No need char
  150. Subject length lower bound = 3
  151. Starting chars: c d e
  152. this sentence eventually mentions a cat
  153. 0: cat
  154. this sentences rambles on and on for a while and then reaches elephant
  155. 0: elephant
  156. /cat|dog|elephant/IiS
  157. Capturing subpattern count = 0
  158. Options: caseless
  159. No first char
  160. No need char
  161. Subject length lower bound = 3
  162. Starting chars: C D E c d e
  163. this sentence eventually mentions a CAT cat
  164. 0: CAT
  165. this sentences rambles on and on for a while to elephant ElePhant
  166. 0: elephant
  167. /a|[bcd]/IS
  168. Capturing subpattern count = 0
  169. No options
  170. No first char
  171. No need char
  172. Subject length lower bound = 1
  173. Starting chars: a b c d
  174. /(a|[^\dZ])/IS
  175. Capturing subpattern count = 1
  176. No options
  177. No first char
  178. No need char
  179. Subject length lower bound = 1
  180. Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
  181. \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
  182. \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
  183. ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d
  184. e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80 \x81 \x82 \x83
  185. \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92
  186. \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1
  187. \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0
  188. \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf
  189. \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce
  190. \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd
  191. \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec
  192. \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
  193. \xfc \xfd \xfe \xff
  194. /(a|b)*[\s]/IS
  195. Capturing subpattern count = 1
  196. No options
  197. No first char
  198. No need char
  199. Subject length lower bound = 1
  200. Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 a b
  201. /(ab\2)/
  202. Failed: reference to non-existent subpattern at offset 6
  203. /{4,5}abc/
  204. Failed: nothing to repeat at offset 4
  205. /(a)(b)(c)\2/I
  206. Capturing subpattern count = 3
  207. Max back reference = 2
  208. No options
  209. First char = 'a'
  210. Need char = 'c'
  211. abcb
  212. 0: abcb
  213. 1: a
  214. 2: b
  215. 3: c
  216. \O0abcb
  217. Matched, but too many substrings
  218. \O3abcb
  219. Matched, but too many substrings
  220. 0: abcb
  221. \O6abcb
  222. Matched, but too many substrings
  223. 0: abcb
  224. 1: a
  225. \O9abcb
  226. Matched, but too many substrings
  227. 0: abcb
  228. 1: a
  229. 2: b
  230. \O12abcb
  231. 0: abcb
  232. 1: a
  233. 2: b
  234. 3: c
  235. /(a)bc|(a)(b)\2/I
  236. Capturing subpattern count = 3
  237. Max back reference = 2
  238. No options
  239. First char = 'a'
  240. No need char
  241. abc
  242. 0: abc
  243. 1: a
  244. \O0abc
  245. Matched, but too many substrings
  246. \O3abc
  247. Matched, but too many substrings
  248. 0: abc
  249. \O6abc
  250. 0: abc
  251. 1: a
  252. aba
  253. 0: aba
  254. 1: <unset>
  255. 2: a
  256. 3: b
  257. \O0aba
  258. Matched, but too many substrings
  259. \O3aba
  260. Matched, but too many substrings
  261. 0: aba
  262. \O6aba
  263. Matched, but too many substrings
  264. 0: aba
  265. 1: <unset>
  266. \O9aba
  267. Matched, but too many substrings
  268. 0: aba
  269. 1: <unset>
  270. 2: a
  271. \O12aba
  272. 0: aba
  273. 1: <unset>
  274. 2: a
  275. 3: b
  276. /abc$/IE
  277. Capturing subpattern count = 0
  278. Options: dollar_endonly
  279. First char = 'a'
  280. Need char = 'c'
  281. abc
  282. 0: abc
  283. *** Failers
  284. No match
  285. abc\n
  286. No match
  287. abc\ndef
  288. No match
  289. /(a)(b)(c)(d)(e)\6/
  290. Failed: reference to non-existent subpattern at offset 17
  291. /the quick brown fox/I
  292. Capturing subpattern count = 0
  293. No options
  294. First char = 't'
  295. Need char = 'x'
  296. the quick brown fox
  297. 0: the quick brown fox
  298. this is a line with the quick brown fox
  299. 0: the quick brown fox
  300. /the quick brown fox/IA
  301. Capturing subpattern count = 0
  302. Options: anchored
  303. No first char
  304. No need char
  305. the quick brown fox
  306. 0: the quick brown fox
  307. *** Failers
  308. No match
  309. this is a line with the quick brown fox
  310. No match
  311. /ab(?z)cd/
  312. Failed: unrecognized character after (? or (?- at offset 4
  313. /^abc|def/I
  314. Capturing subpattern count = 0
  315. No options
  316. No first char
  317. No need char
  318. abcdef
  319. 0: abc
  320. abcdef\B
  321. 0: def
  322. /.*((abc)$|(def))/I
  323. Capturing subpattern count = 3
  324. No options
  325. First char at start or follows newline
  326. No need char
  327. defabc
  328. 0: defabc
  329. 1: abc
  330. 2: abc
  331. \Zdefabc
  332. 0: def
  333. 1: def
  334. 2: <unset>
  335. 3: def
  336. /)/
  337. Failed: unmatched parentheses at offset 0
  338. /a[]b/
  339. Failed: missing terminating ] for character class at offset 4
  340. /[^aeiou ]{3,}/I
  341. Capturing subpattern count = 0
  342. No options
  343. No first char
  344. No need char
  345. co-processors, and for
  346. 0: -pr
  347. /<.*>/I
  348. Capturing subpattern count = 0
  349. No options
  350. First char = '<'
  351. Need char = '>'
  352. abc<def>ghi<klm>nop
  353. 0: <def>ghi<klm>
  354. /<.*?>/I
  355. Capturing subpattern count = 0
  356. No options
  357. First char = '<'
  358. Need char = '>'
  359. abc<def>ghi<klm>nop
  360. 0: <def>
  361. /<.*>/IU
  362. Capturing subpattern count = 0
  363. Options: ungreedy
  364. First char = '<'
  365. Need char = '>'
  366. abc<def>ghi<klm>nop
  367. 0: <def>
  368. /(?U)<.*>/I
  369. Capturing subpattern count = 0
  370. No options
  371. First char = '<'
  372. Need char = '>'
  373. abc<def>ghi<klm>nop
  374. 0: <def>
  375. /<.*?>/IU
  376. Capturing subpattern count = 0
  377. Options: ungreedy
  378. First char = '<'
  379. Need char = '>'
  380. abc<def>ghi<klm>nop
  381. 0: <def>ghi<klm>
  382. /={3,}/IU
  383. Capturing subpattern count = 0
  384. Options: ungreedy
  385. First char = '='
  386. Need char = '='
  387. abc========def
  388. 0: ===
  389. /(?U)={3,}?/I
  390. Capturing subpattern count = 0
  391. No options
  392. First char = '='
  393. Need char = '='
  394. abc========def
  395. 0: ========
  396. /(?<!bar|cattle)foo/I
  397. Capturing subpattern count = 0
  398. Max lookbehind = 6
  399. No options
  400. First char = 'f'
  401. Need char = 'o'
  402. foo
  403. 0: foo
  404. catfoo
  405. 0: foo
  406. *** Failers
  407. No match
  408. the barfoo
  409. No match
  410. and cattlefoo
  411. No match
  412. /(?<=a+)b/
  413. Failed: lookbehind assertion is not fixed length at offset 6
  414. /(?<=aaa|b{0,3})b/
  415. Failed: lookbehind assertion is not fixed length at offset 14
  416. /(?<!(foo)a\1)bar/
  417. Failed: lookbehind assertion is not fixed length at offset 12
  418. /(?i)abc/I
  419. Capturing subpattern count = 0
  420. No options
  421. First char = 'a' (caseless)
  422. Need char = 'c' (caseless)
  423. /(a|(?m)a)/I
  424. Capturing subpattern count = 1
  425. No options
  426. First char = 'a'
  427. No need char
  428. /(?i)^1234/I
  429. Capturing subpattern count = 0
  430. Options: anchored
  431. No first char
  432. No need char
  433. /(^b|(?i)^d)/I
  434. Capturing subpattern count = 1
  435. Options: anchored
  436. No first char
  437. No need char
  438. /(?s).*/I
  439. Capturing subpattern count = 0
  440. May match empty string
  441. Options: anchored
  442. No first char
  443. No need char
  444. /[abcd]/IS
  445. Capturing subpattern count = 0
  446. No options
  447. No first char
  448. No need char
  449. Subject length lower bound = 1
  450. Starting chars: a b c d
  451. /(?i)[abcd]/IS
  452. Capturing subpattern count = 0
  453. No options
  454. No first char
  455. No need char
  456. Subject length lower bound = 1
  457. Starting chars: A B C D a b c d
  458. /(?m)[xy]|(b|c)/IS
  459. Capturing subpattern count = 1
  460. No options
  461. No first char
  462. No need char
  463. Subject length lower bound = 1
  464. Starting chars: b c x y
  465. /(^a|^b)/Im
  466. Capturing subpattern count = 1
  467. Options: multiline
  468. First char at start or follows newline
  469. No need char
  470. /(?i)(^a|^b)/Im
  471. Capturing subpattern count = 1
  472. Options: multiline
  473. First char at start or follows newline
  474. No need char
  475. /(a)(?(1)a|b|c)/
  476. Failed: conditional group contains more than two branches at offset 13
  477. /(?(?=a)a|b|c)/
  478. Failed: conditional group contains more than two branches at offset 12
  479. /(?(1a)/
  480. Failed: malformed number or name after (?( at offset 4
  481. /(?(1a))/
  482. Failed: malformed number or name after (?( at offset 4
  483. /(?(?i))/
  484. Failed: assertion expected after (?( or (?(?C) at offset 3
  485. /(?(abc))/
  486. Failed: reference to non-existent subpattern at offset 7
  487. /(?(?<ab))/
  488. Failed: assertion expected after (?( or (?(?C) at offset 3
  489. /((?s)blah)\s+\1/I
  490. Capturing subpattern count = 1
  491. Max back reference = 1
  492. No options
  493. First char = 'b'
  494. Need char = 'h'
  495. /((?i)blah)\s+\1/I
  496. Capturing subpattern count = 1
  497. Max back reference = 1
  498. No options
  499. First char = 'b' (caseless)
  500. Need char = 'h' (caseless)
  501. /((?i)b)/IDZS
  502. ------------------------------------------------------------------
  503. Bra
  504. CBra 1
  505. /i b
  506. Ket
  507. Ket
  508. End
  509. ------------------------------------------------------------------
  510. Capturing subpattern count = 1
  511. No options
  512. First char = 'b' (caseless)
  513. No need char
  514. Subject length lower bound = 1
  515. No starting char list
  516. /(a*b|(?i:c*(?-i)d))/IS
  517. Capturing subpattern count = 1
  518. No options
  519. No first char
  520. No need char
  521. Subject length lower bound = 1
  522. Starting chars: C a b c d
  523. /a$/I
  524. Capturing subpattern count = 0
  525. No options
  526. First char = 'a'
  527. No need char
  528. a
  529. 0: a
  530. a\n
  531. 0: a
  532. *** Failers
  533. No match
  534. \Za
  535. No match
  536. \Za\n
  537. No match
  538. /a$/Im
  539. Capturing subpattern count = 0
  540. Options: multiline
  541. First char = 'a'
  542. No need char
  543. a
  544. 0: a
  545. a\n
  546. 0: a
  547. \Za\n
  548. 0: a
  549. *** Failers
  550. No match
  551. \Za
  552. No match
  553. /\Aabc/Im
  554. Capturing subpattern count = 0
  555. Max lookbehind = 1
  556. Options: anchored multiline
  557. No first char
  558. No need char
  559. /^abc/Im
  560. Capturing subpattern count = 0
  561. Options: multiline
  562. First char at start or follows newline
  563. Need char = 'c'
  564. /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
  565. Capturing subpattern count = 5
  566. Options: anchored
  567. No first char
  568. No need char
  569. aaaaabbbbbcccccdef
  570. 0: aaaaabbbbbcccccdef
  571. 1: aaaaabbbbbcccccdef
  572. 2: aaaaa
  573. 3: b
  574. 4: bbbbccccc
  575. 5: def
  576. /(?<=foo)[ab]/IS
  577. Capturing subpattern count = 0
  578. Max lookbehind = 3
  579. No options
  580. No first char
  581. No need char
  582. Subject length lower bound = 1
  583. Starting chars: a b
  584. /(?<!foo)(alpha|omega)/IS
  585. Capturing subpattern count = 1
  586. Max lookbehind = 3
  587. No options
  588. No first char
  589. Need char = 'a'
  590. Subject length lower bound = 5
  591. Starting chars: a o
  592. /(?!alphabet)[ab]/IS
  593. Capturing subpattern count = 0
  594. No options
  595. No first char
  596. No need char
  597. Subject length lower bound = 1
  598. Starting chars: a b
  599. /(?<=foo\n)^bar/Im
  600. Capturing subpattern count = 0
  601. Max lookbehind = 4
  602. Contains explicit CR or LF match
  603. Options: multiline
  604. No first char
  605. Need char = 'r'
  606. foo\nbarbar
  607. 0: bar
  608. ***Failers
  609. No match
  610. rhubarb
  611. No match
  612. barbell
  613. No match
  614. abc\nbarton
  615. No match
  616. /^(?<=foo\n)bar/Im
  617. Capturing subpattern count = 0
  618. Max lookbehind = 4
  619. Contains explicit CR or LF match
  620. Options: multiline
  621. First char at start or follows newline
  622. Need char = 'r'
  623. foo\nbarbar
  624. 0: bar
  625. ***Failers
  626. No match
  627. rhubarb
  628. No match
  629. barbell
  630. No match
  631. abc\nbarton
  632. No match
  633. /(?>^abc)/Im
  634. Capturing subpattern count = 0
  635. Options: multiline
  636. First char at start or follows newline
  637. Need char = 'c'
  638. abc
  639. 0: abc
  640. def\nabc
  641. 0: abc
  642. *** Failers
  643. No match
  644. defabc
  645. No match
  646. /(?<=ab(c+)d)ef/
  647. Failed: lookbehind assertion is not fixed length at offset 11
  648. /(?<=ab(?<=c+)d)ef/
  649. Failed: lookbehind assertion is not fixed length at offset 12
  650. /(?<=ab(c|de)f)g/
  651. Failed: lookbehind assertion is not fixed length at offset 13
  652. /The next three are in testinput2 because they have variable length branches/
  653. /(?<=bullock|donkey)-cart/I
  654. Capturing subpattern count = 0
  655. Max lookbehind = 7
  656. No options
  657. First char = '-'
  658. Need char = 't'
  659. the bullock-cart
  660. 0: -cart
  661. a donkey-cart race
  662. 0: -cart
  663. *** Failers
  664. No match
  665. cart
  666. No match
  667. horse-and-cart
  668. No match
  669. /(?<=ab(?i)x|y|z)/I
  670. Capturing subpattern count = 0
  671. Max lookbehind = 3
  672. May match empty string
  673. No options
  674. No first char
  675. No need char
  676. /(?>.*)(?<=(abcd)|(xyz))/I
  677. Capturing subpattern count = 2
  678. Max lookbehind = 4
  679. May match empty string
  680. No options
  681. No first char
  682. No need char
  683. alphabetabcd
  684. 0: alphabetabcd
  685. 1: abcd
  686. endingxyz
  687. 0: endingxyz
  688. 1: <unset>
  689. 2: xyz
  690. /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
  691. Capturing subpattern count = 0
  692. Max lookbehind = 4
  693. No options
  694. First char = 'Z'
  695. Need char = 'Z'
  696. abxyZZ
  697. 0: ZZ
  698. abXyZZ
  699. 0: ZZ
  700. ZZZ
  701. 0: ZZ
  702. zZZ
  703. 0: ZZ
  704. bZZ
  705. 0: ZZ
  706. BZZ
  707. 0: ZZ
  708. *** Failers
  709. No match
  710. ZZ
  711. No match
  712. abXYZZ
  713. No match
  714. zzz
  715. No match
  716. bzz
  717. No match
  718. /(?<!(foo)a)bar/I
  719. Capturing subpattern count = 1
  720. Max lookbehind = 4
  721. No options
  722. First char = 'b'
  723. Need char = 'r'
  724. bar
  725. 0: bar
  726. foobbar
  727. 0: bar
  728. *** Failers
  729. No match
  730. fooabar
  731. No match
  732. /This one is here because Perl behaves differently; see also the following/I
  733. Capturing subpattern count = 0
  734. No options
  735. First char = 'T'
  736. Need char = 'g'
  737. /^(a\1?){4}$/I
  738. Capturing subpattern count = 1
  739. Max back reference = 1
  740. Options: anchored
  741. No first char
  742. No need char
  743. aaaa
  744. No match
  745. aaaaaa
  746. No match
  747. /Perl does not fail these two for the final subjects. Neither did PCRE until/
  748. /release 8.01. The problem is in backtracking into a subpattern that contains/
  749. No match
  750. /a recursive reference to itself. PCRE has now made these into atomic patterns./
  751. No match
  752. /^(xa|=?\1a){2}$/
  753. xa=xaa
  754. 0: xa=xaa
  755. 1: =xaa
  756. ** Failers
  757. No match
  758. xa=xaaa
  759. No match
  760. /^(xa|=?\1a)+$/
  761. xa=xaa
  762. 0: xa=xaa
  763. 1: =xaa
  764. ** Failers
  765. No match
  766. xa=xaaa
  767. No match
  768. /These are syntax tests from Perl 5.005/I
  769. Capturing subpattern count = 0
  770. No options
  771. First char = 'T'
  772. Need char = '5'
  773. /a[b-a]/
  774. Failed: range out of order in character class at offset 4
  775. /a[]b/
  776. Failed: missing terminating ] for character class at offset 4
  777. /a[/
  778. Failed: missing terminating ] for character class at offset 2
  779. /*a/
  780. Failed: nothing to repeat at offset 0
  781. /(*)b/
  782. Failed: nothing to repeat at offset 1
  783. /abc)/
  784. Failed: unmatched parentheses at offset 3
  785. /(abc/
  786. Failed: missing ) at offset 4
  787. /a**/
  788. Failed: nothing to repeat at offset 2
  789. /)(/
  790. Failed: unmatched parentheses at offset 0
  791. /\1/
  792. Failed: reference to non-existent subpattern at offset 2
  793. /\2/
  794. Failed: reference to non-existent subpattern at offset 2
  795. /(a)|\2/
  796. Failed: reference to non-existent subpattern at offset 6
  797. /a[b-a]/Ii
  798. Failed: range out of order in character class at offset 4
  799. /a[]b/Ii
  800. Failed: missing terminating ] for character class at offset 4
  801. /a[/Ii
  802. Failed: missing terminating ] for character class at offset 2
  803. /*a/Ii
  804. Failed: nothing to repeat at offset 0
  805. /(*)b/Ii
  806. Failed: nothing to repeat at offset 1
  807. /abc)/Ii
  808. Failed: unmatched parentheses at offset 3
  809. /(abc/Ii
  810. Failed: missing ) at offset 4
  811. /a**/Ii
  812. Failed: nothing to repeat at offset 2
  813. /)(/Ii
  814. Failed: unmatched parentheses at offset 0
  815. /:(?:/
  816. Failed: missing ) at offset 4
  817. /(?<%)b/
  818. Failed: unrecognized character after (?< at offset 3
  819. /a(?{)b/
  820. Failed: unrecognized character after (? or (?- at offset 3
  821. /a(?{{})b/
  822. Failed: unrecognized character after (? or (?- at offset 3
  823. /a(?{}})b/
  824. Failed: unrecognized character after (? or (?- at offset 3
  825. /a(?{"{"})b/
  826. Failed: unrecognized character after (? or (?- at offset 3
  827. /a(?{"{"}})b/
  828. Failed: unrecognized character after (? or (?- at offset 3
  829. /(?(1?)a|b)/
  830. Failed: malformed number or name after (?( at offset 4
  831. /[a[:xyz:/
  832. Failed: missing terminating ] for character class at offset 8
  833. /(?<=x+)y/
  834. Failed: lookbehind assertion is not fixed length at offset 6
  835. /a{37,17}/
  836. Failed: numbers out of order in {} quantifier at offset 7
  837. /abc/\
  838. Failed: \ at end of pattern at offset 4
  839. /abc/\i
  840. Failed: \ at end of pattern at offset 4
  841. /(a)bc(d)/I
  842. Capturing subpattern count = 2
  843. No options
  844. First char = 'a'
  845. Need char = 'd'
  846. abcd
  847. 0: abcd
  848. 1: a
  849. 2: d
  850. abcd\C2
  851. 0: abcd
  852. 1: a
  853. 2: d
  854. 2C d (1)
  855. abcd\C5
  856. 0: abcd
  857. 1: a
  858. 2: d
  859. copy substring 5 failed -7
  860. /(.{20})/I
  861. Capturing subpattern count = 1
  862. No options
  863. No first char
  864. No need char
  865. abcdefghijklmnopqrstuvwxyz
  866. 0: abcdefghijklmnopqrst
  867. 1: abcdefghijklmnopqrst
  868. abcdefghijklmnopqrstuvwxyz\C1
  869. 0: abcdefghijklmnopqrst
  870. 1: abcdefghijklmnopqrst
  871. 1C abcdefghijklmnopqrst (20)
  872. abcdefghijklmnopqrstuvwxyz\G1
  873. 0: abcdefghijklmnopqrst
  874. 1: abcdefghijklmnopqrst
  875. 1G abcdefghijklmnopqrst (20)
  876. /(.{15})/I
  877. Capturing subpattern count = 1
  878. No options
  879. No first char
  880. No need char
  881. abcdefghijklmnopqrstuvwxyz
  882. 0: abcdefghijklmno
  883. 1: abcdefghijklmno
  884. abcdefghijklmnopqrstuvwxyz\C1\G1
  885. 0: abcdefghijklmno
  886. 1: abcdefghijklmno
  887. 1C abcdefghijklmno (15)
  888. 1G abcdefghijklmno (15)
  889. /(.{16})/I
  890. Capturing subpattern count = 1
  891. No options
  892. No first char
  893. No need char
  894. abcdefghijklmnopqrstuvwxyz
  895. 0: abcdefghijklmnop
  896. 1: abcdefghijklmnop
  897. abcdefghijklmnopqrstuvwxyz\C1\G1\L
  898. 0: abcdefghijklmnop
  899. 1: abcdefghijklmnop
  900. 1C abcdefghijklmnop (16)
  901. 1G abcdefghijklmnop (16)
  902. 0L abcdefghijklmnop
  903. 1L abcdefghijklmnop
  904. /^(a|(bc))de(f)/I
  905. Capturing subpattern count = 3
  906. Options: anchored
  907. No first char
  908. No need char
  909. adef\G1\G2\G3\G4\L
  910. 0: adef
  911. 1: a
  912. 2: <unset>
  913. 3: f
  914. 1G a (1)
  915. 2G (0)
  916. 3G f (1)
  917. get substring 4 failed -7
  918. 0L adef
  919. 1L a
  920. 2L
  921. 3L f
  922. bcdef\G1\G2\G3\G4\L
  923. 0: bcdef
  924. 1: bc
  925. 2: bc
  926. 3: f
  927. 1G bc (2)
  928. 2G bc (2)
  929. 3G f (1)
  930. get substring 4 failed -7
  931. 0L bcdef
  932. 1L bc
  933. 2L bc
  934. 3L f
  935. adefghijk\C0
  936. 0: adef
  937. 1: a
  938. 2: <unset>
  939. 3: f
  940. 0C adef (4)
  941. /^abc\00def/I
  942. Capturing subpattern count = 0
  943. Options: anchored
  944. No first char
  945. No need char
  946. abc\00def\L\C0
  947. 0: abc\x00def
  948. 0C abc\x00def (7)
  949. 0L abc
  950. /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
  951. )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
  952. )?)?)?)?)?)?)?)?)?otherword/I
  953. Capturing subpattern count = 8
  954. Contains explicit CR or LF match
  955. No options
  956. First char = 'w'
  957. Need char = 'd'
  958. /.*X/IDZ
  959. ------------------------------------------------------------------
  960. Bra
  961. Any*
  962. X
  963. Ket
  964. End
  965. ------------------------------------------------------------------
  966. Capturing subpattern count = 0
  967. No options
  968. First char at start or follows newline
  969. Need char = 'X'
  970. /.*X/IDZs
  971. ------------------------------------------------------------------
  972. Bra
  973. AllAny*
  974. X
  975. Ket
  976. End
  977. ------------------------------------------------------------------
  978. Capturing subpattern count = 0
  979. Options: anchored dotall
  980. No first char
  981. Need char = 'X'
  982. /(.*X|^B)/IDZ
  983. ------------------------------------------------------------------
  984. Bra
  985. CBra 1
  986. Any*
  987. X
  988. Alt
  989. ^
  990. B
  991. Ket
  992. Ket
  993. End
  994. ------------------------------------------------------------------
  995. Capturing subpattern count = 1
  996. No options
  997. First char at start or follows newline
  998. No need char
  999. /(.*X|^B)/IDZs
  1000. ------------------------------------------------------------------
  1001. Bra
  1002. CBra 1
  1003. AllAny*
  1004. X
  1005. Alt
  1006. ^
  1007. B
  1008. Ket
  1009. Ket
  1010. End
  1011. ------------------------------------------------------------------
  1012. Capturing subpattern count = 1
  1013. Options: anchored dotall
  1014. No first char
  1015. No need char
  1016. /(?s)(.*X|^B)/IDZ
  1017. ------------------------------------------------------------------
  1018. Bra
  1019. CBra 1
  1020. AllAny*
  1021. X
  1022. Alt
  1023. ^
  1024. B
  1025. Ket
  1026. Ket
  1027. End
  1028. ------------------------------------------------------------------
  1029. Capturing subpattern count = 1
  1030. Options: anchored
  1031. No first char
  1032. No need char
  1033. /(?s:.*X|^B)/IDZ
  1034. ------------------------------------------------------------------
  1035. Bra
  1036. Bra
  1037. AllAny*
  1038. X
  1039. Alt
  1040. ^
  1041. B
  1042. Ket
  1043. Ket
  1044. End
  1045. ------------------------------------------------------------------
  1046. Capturing subpattern count = 0
  1047. Options: anchored
  1048. No first char
  1049. No need char
  1050. /\Biss\B/I+
  1051. Capturing subpattern count = 0
  1052. Max lookbehind = 1
  1053. No options
  1054. First char = 'i'
  1055. Need char = 's'
  1056. Mississippi
  1057. 0: iss
  1058. 0+ issippi
  1059. /iss/IG+
  1060. Capturing subpattern count = 0
  1061. No options
  1062. First char = 'i'
  1063. Need char = 's'
  1064. Mississippi
  1065. 0: iss
  1066. 0+ issippi
  1067. 0: iss
  1068. 0+ ippi
  1069. /\Biss\B/IG+
  1070. Capturing subpattern count = 0
  1071. Max lookbehind = 1
  1072. No options
  1073. First char = 'i'
  1074. Need char = 's'
  1075. Mississippi
  1076. 0: iss
  1077. 0+ issippi
  1078. /\Biss\B/Ig+
  1079. Capturing subpattern count = 0
  1080. Max lookbehind = 1
  1081. No options
  1082. First char = 'i'
  1083. Need char = 's'
  1084. Mississippi
  1085. 0: iss
  1086. 0+ issippi
  1087. 0: iss
  1088. 0+ ippi
  1089. *** Failers
  1090. No match
  1091. Mississippi\A
  1092. No match
  1093. /(?<=[Ms])iss/Ig+
  1094. Capturing subpattern count = 0
  1095. Max lookbehind = 1
  1096. No options
  1097. First char = 'i'
  1098. Need char = 's'
  1099. Mississippi
  1100. 0: iss
  1101. 0+ issippi
  1102. 0: iss
  1103. 0+ ippi
  1104. /(?<=[Ms])iss/IG+
  1105. Capturing subpattern count = 0
  1106. Max lookbehind = 1
  1107. No options
  1108. First char = 'i'
  1109. Need char = 's'
  1110. Mississippi
  1111. 0: iss
  1112. 0+ issippi
  1113. /^iss/Ig+
  1114. Capturing subpattern count = 0
  1115. Options: anchored
  1116. No first char
  1117. No need char
  1118. ississippi
  1119. 0: iss
  1120. 0+ issippi
  1121. /.*iss/Ig+
  1122. Capturing subpattern count = 0
  1123. No options
  1124. First char at start or follows newline
  1125. Need char = 's'
  1126. abciss\nxyzisspqr
  1127. 0: abciss
  1128. 0+ \x0axyzisspqr
  1129. 0: xyziss
  1130. 0+ pqr
  1131. /.i./I+g
  1132. Capturing subpattern count = 0
  1133. No options
  1134. No first char
  1135. Need char = 'i'
  1136. Mississippi
  1137. 0: Mis
  1138. 0+ sissippi
  1139. 0: sis
  1140. 0+ sippi
  1141. 0: sip
  1142. 0+ pi
  1143. Mississippi\A
  1144. 0: Mis
  1145. 0+ sissippi
  1146. 0: sis
  1147. 0+ sippi
  1148. 0: sip
  1149. 0+ pi
  1150. Missouri river
  1151. 0: Mis
  1152. 0+ souri river
  1153. 0: ri
  1154. 0+ river
  1155. 0: riv
  1156. 0+ er
  1157. Missouri river\A
  1158. 0: Mis
  1159. 0+ souri river
  1160. /^.is/I+g
  1161. Capturing subpattern count = 0
  1162. Options: anchored
  1163. No first char
  1164. No need char
  1165. Mississippi
  1166. 0: Mis
  1167. 0+ sissippi
  1168. /^ab\n/Ig+
  1169. Capturing subpattern count = 0
  1170. Contains explicit CR or LF match
  1171. Options: anchored
  1172. No first char
  1173. No need char
  1174. ab\nab\ncd
  1175. 0: ab\x0a
  1176. 0+ ab\x0acd
  1177. /^ab\n/Img+
  1178. Capturing subpattern count = 0
  1179. Contains explicit CR or LF match
  1180. Options: multiline
  1181. First char at start or follows newline
  1182. Need char = \x0a
  1183. ab\nab\ncd
  1184. 0: ab\x0a
  1185. 0+ ab\x0acd
  1186. 0: ab\x0a
  1187. 0+ cd
  1188. /abc/I
  1189. Capturing subpattern count = 0
  1190. No options
  1191. First char = 'a'
  1192. Need char = 'c'
  1193. /abc|bac/I
  1194. Capturing subpattern count = 0
  1195. No options
  1196. No first char
  1197. Need char = 'c'
  1198. /(abc|bac)/I
  1199. Capturing subpattern count = 1
  1200. No options
  1201. No first char
  1202. Need char = 'c'
  1203. /(abc|(c|dc))/I
  1204. Capturing subpattern count = 2
  1205. No options
  1206. No first char
  1207. Need char = 'c'
  1208. /(abc|(d|de)c)/I
  1209. Capturing subpattern count = 2
  1210. No options
  1211. No first char
  1212. Need char = 'c'
  1213. /a*/I
  1214. Capturing subpattern count = 0
  1215. May match empty string
  1216. No options
  1217. No first char
  1218. No need char
  1219. /a+/I
  1220. Capturing subpattern count = 0
  1221. No options
  1222. First char = 'a'
  1223. No need char
  1224. /(baa|a+)/I
  1225. Capturing subpattern count = 1
  1226. No options
  1227. No first char
  1228. Need char = 'a'
  1229. /a{0,3}/I
  1230. Capturing subpattern count = 0
  1231. May match empty string
  1232. No options
  1233. No first char
  1234. No need char
  1235. /baa{3,}/I
  1236. Capturing subpattern count = 0
  1237. No options
  1238. First char = 'b'
  1239. Need char = 'a'
  1240. /"([^\\"]+|\\.)*"/I
  1241. Capturing subpattern count = 1
  1242. No options
  1243. First char = '"'
  1244. Need char = '"'
  1245. /(abc|ab[cd])/I
  1246. Capturing subpattern count = 1
  1247. No options
  1248. First char = 'a'
  1249. No need char
  1250. /(a|.)/I
  1251. Capturing subpattern count = 1
  1252. No options
  1253. No first char
  1254. No need char
  1255. /a|ba|\w/I
  1256. Capturing subpattern count = 0
  1257. No options
  1258. No first char
  1259. No need char
  1260. /abc(?=pqr)/I
  1261. Capturing subpattern count = 0
  1262. No options
  1263. First char = 'a'
  1264. Need char = 'r'
  1265. /...(?<=abc)/I
  1266. Capturing subpattern count = 0
  1267. Max lookbehind = 3
  1268. No options
  1269. No first char
  1270. No need char
  1271. /abc(?!pqr)/I
  1272. Capturing subpattern count = 0
  1273. No options
  1274. First char = 'a'
  1275. Need char = 'c'
  1276. /ab./I
  1277. Capturing subpattern count = 0
  1278. No options
  1279. First char = 'a'
  1280. Need char = 'b'
  1281. /ab[xyz]/I
  1282. Capturing subpattern count = 0
  1283. No options
  1284. First char = 'a'
  1285. Need char = 'b'
  1286. /abc*/I
  1287. Capturing subpattern count = 0
  1288. No options
  1289. First char = 'a'
  1290. Need char = 'b'
  1291. /ab.c*/I
  1292. Capturing subpattern count = 0
  1293. No options
  1294. First char = 'a'
  1295. Need char = 'b'
  1296. /a.c*/I
  1297. Capturing subpattern count = 0
  1298. No options
  1299. First char = 'a'
  1300. No need char
  1301. /.c*/I
  1302. Capturing subpattern count = 0
  1303. No options
  1304. No first char
  1305. No need char
  1306. /ac*/I
  1307. Capturing subpattern count = 0
  1308. No options
  1309. First char = 'a'
  1310. No need char
  1311. /(a.c*|b.c*)/I
  1312. Capturing subpattern count = 1
  1313. No options
  1314. No first char
  1315. No need char
  1316. /a.c*|aba/I
  1317. Capturing subpattern count = 0
  1318. No options
  1319. First char = 'a'
  1320. No need char
  1321. /.+a/I
  1322. Capturing subpattern count = 0
  1323. No options
  1324. No first char
  1325. Need char = 'a'
  1326. /(?=abcda)a.*/I
  1327. Capturing subpattern count = 0
  1328. No options
  1329. First char = 'a'
  1330. Need char = 'a'
  1331. /(?=a)a.*/I
  1332. Capturing subpattern count = 0
  1333. No options
  1334. First char = 'a'
  1335. No need char
  1336. /a(b)*/I
  1337. Capturing subpattern count = 1
  1338. No options
  1339. First char = 'a'
  1340. No need char
  1341. /a\d*/I
  1342. Capturing subpattern count = 0
  1343. No options
  1344. First char = 'a'
  1345. No need char
  1346. /ab\d*/I
  1347. Capturing subpattern count = 0
  1348. No options
  1349. First char = 'a'
  1350. Need char = 'b'
  1351. /a(\d)*/I
  1352. Capturing subpattern count = 1
  1353. No options
  1354. First char = 'a'
  1355. No need char
  1356. /abcde{0,0}/I
  1357. Capturing subpattern count = 0
  1358. No options
  1359. First char = 'a'
  1360. Need char = 'd'
  1361. /ab\d+/I
  1362. Capturing subpattern count = 0
  1363. No options
  1364. First char = 'a'
  1365. Need char = 'b'
  1366. /a(?(1)b)(.)/I
  1367. Capturing subpattern count = 1
  1368. Max back reference = 1
  1369. No options
  1370. First char = 'a'
  1371. No need char
  1372. /a(?(1)bag|big)(.)/I
  1373. Capturing subpattern count = 1
  1374. Max back reference = 1
  1375. No options
  1376. First char = 'a'
  1377. Need char = 'g'
  1378. /a(?(1)bag|big)*(.)/I
  1379. Capturing subpattern count = 1
  1380. Max back reference = 1
  1381. No options
  1382. First char = 'a'
  1383. No need char
  1384. /a(?(1)bag|big)+(.)/I
  1385. Capturing subpattern count = 1
  1386. Max back reference = 1
  1387. No options
  1388. First char = 'a'
  1389. Need char = 'g'
  1390. /a(?(1)b..|b..)(.)/I
  1391. Capturing subpattern count = 1
  1392. Max back reference = 1
  1393. No options
  1394. First char = 'a'
  1395. Need char = 'b'
  1396. /ab\d{0}e/I
  1397. Capturing subpattern count = 0
  1398. No options
  1399. First char = 'a'
  1400. Need char = 'e'
  1401. /a?b?/I
  1402. Capturing subpattern count = 0
  1403. May match empty string
  1404. No options
  1405. No first char
  1406. No need char
  1407. a
  1408. 0: a
  1409. b
  1410. 0: b
  1411. ab
  1412. 0: ab
  1413. \
  1414. 0:
  1415. *** Failers
  1416. 0:
  1417. \N
  1418. No match
  1419. /|-/I
  1420. Capturing subpattern count = 0
  1421. May match empty string
  1422. No options
  1423. No first char
  1424. No need char
  1425. abcd
  1426. 0:
  1427. -abc
  1428. 0:
  1429. \Nab-c
  1430. 0: -
  1431. *** Failers
  1432. 0:
  1433. \Nabc
  1434. No match
  1435. /^.?abcd/IS
  1436. Capturing subpattern count = 0
  1437. Options: anchored
  1438. No first char
  1439. Need char = 'd'
  1440. Subject length lower bound = 4
  1441. No starting char list
  1442. /\( # ( at start
  1443. (?: # Non-capturing bracket
  1444. (?>[^()]+) # Either a sequence of non-brackets (no backtracking)
  1445. | # Or
  1446. (?R) # Recurse - i.e. nested bracketed string
  1447. )* # Zero or more contents
  1448. \) # Closing )
  1449. /Ix
  1450. Capturing subpattern count = 0
  1451. Options: extended
  1452. First char = '('
  1453. Need char = ')'
  1454. (abcd)
  1455. 0: (abcd)
  1456. (abcd)xyz
  1457. 0: (abcd)
  1458. xyz(abcd)
  1459. 0: (abcd)
  1460. (ab(xy)cd)pqr
  1461. 0: (ab(xy)cd)
  1462. (ab(xycd)pqr
  1463. 0: (xycd)
  1464. () abc ()
  1465. 0: ()
  1466. 12(abcde(fsh)xyz(foo(bar))lmno)89
  1467. 0: (abcde(fsh)xyz(foo(bar))lmno)
  1468. *** Failers
  1469. No match
  1470. abcd
  1471. No match
  1472. abcd)
  1473. No match
  1474. (abcd
  1475. No match
  1476. /\( ( (?>[^()]+) | (?R) )* \) /Ixg
  1477. Capturing subpattern count = 1
  1478. Options: extended
  1479. First char = '('
  1480. Need char = ')'
  1481. (ab(xy)cd)pqr
  1482. 0: (ab(xy)cd)
  1483. 1: cd
  1484. 1(abcd)(x(y)z)pqr
  1485. 0: (abcd)
  1486. 1: abcd
  1487. 0: (x(y)z)
  1488. 1: z
  1489. /\( (?: (?>[^()]+) | (?R) ) \) /Ix
  1490. Capturing subpattern count = 0
  1491. Options: extended
  1492. First char = '('
  1493. Need char = ')'
  1494. (abcd)
  1495. 0: (abcd)
  1496. (ab(xy)cd)
  1497. 0: (xy)
  1498. (a(b(c)d)e)
  1499. 0: (c)
  1500. ((ab))
  1501. 0: ((ab))
  1502. *** Failers
  1503. No match
  1504. ()
  1505. No match
  1506. /\( (?: (?>[^()]+) | (?R) )? \) /Ix
  1507. Capturing subpattern count = 0
  1508. Options: extended
  1509. First char = '('
  1510. Need char = ')'
  1511. ()
  1512. 0: ()
  1513. 12(abcde(fsh)xyz(foo(bar))lmno)89
  1514. 0: (fsh)
  1515. /\( ( (?>[^()]+) | (?R) )* \) /Ix
  1516. Capturing subpattern count = 1
  1517. Options: extended
  1518. First char = '('
  1519. Need char = ')'
  1520. (ab(xy)cd)
  1521. 0: (ab(xy)cd)
  1522. 1: cd
  1523. /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
  1524. Capturing subpattern count = 2
  1525. Options: extended
  1526. First char = '('
  1527. Need char = ')'
  1528. (ab(xy)cd)
  1529. 0: (ab(xy)cd)
  1530. 1: ab(xy)cd
  1531. 2: cd
  1532. /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
  1533. Capturing subpattern count = 3
  1534. Options: extended
  1535. First char = '('
  1536. Need char = ')'
  1537. (ab(xy)cd)
  1538. 0: (ab(xy)cd)
  1539. 1: <unset>
  1540. 2: ab(xy)cd
  1541. 3: cd
  1542. (123ab(xy)cd)
  1543. 0: (123ab(xy)cd)
  1544. 1: 123
  1545. 2: ab(xy)cd
  1546. 3: cd
  1547. /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
  1548. Capturing subpattern count = 3
  1549. Options: extended
  1550. First char = '('
  1551. Need char = ')'
  1552. (ab(xy)cd)
  1553. 0: (ab(xy)cd)
  1554. 1: ab(xy)cd
  1555. 2: <unset>
  1556. 3: cd
  1557. (123ab(xy)cd)
  1558. 0: (123ab(xy)cd)
  1559. 1: 123ab(xy)cd
  1560. 2: 123
  1561. 3: cd
  1562. /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
  1563. Capturing subpattern count = 11
  1564. Options: extended
  1565. First char = '('
  1566. Need char = ')'
  1567. (ab(xy)cd)
  1568. 0: (ab(xy)cd)
  1569. 1: ab(xy)cd
  1570. 2: ab(xy)cd
  1571. 3: ab(xy)cd
  1572. 4: ab(xy)cd
  1573. 5: ab(xy)cd
  1574. 6: ab(xy)cd
  1575. 7: ab(xy)cd
  1576. 8: ab(xy)cd
  1577. 9: ab(xy)cd
  1578. 10: ab(xy)cd
  1579. 11: cd
  1580. /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
  1581. Capturing subpattern count = 3
  1582. Options: extended
  1583. First char = '('
  1584. Need char = ')'
  1585. (abcd(xyz<p>qrs)123)
  1586. 0: (abcd(xyz<p>qrs)123)
  1587. 1: abcd(xyz<p>qrs)123
  1588. 2: 123
  1589. /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
  1590. Capturing subpattern count = 3
  1591. Options: extended
  1592. First char = '('
  1593. Need char = ')'
  1594. (ab(cd)ef)
  1595. 0: (ab(cd)ef)
  1596. 1: ab(cd)ef
  1597. 2: ef
  1598. 3: (cd)
  1599. (ab(cd(ef)gh)ij)
  1600. 0: (ab(cd(ef)gh)ij)
  1601. 1: ab(cd(ef)gh)ij
  1602. 2: ij
  1603. 3: (cd(ef)gh)
  1604. /^[[:alnum:]]/DZ
  1605. ------------------------------------------------------------------
  1606. Bra
  1607. ^
  1608. [0-9A-Za-z]
  1609. Ket
  1610. End
  1611. ------------------------------------------------------------------
  1612. Capturing subpattern count = 0
  1613. Options: anchored
  1614. No first char
  1615. No need char
  1616. /^[[:^alnum:]]/DZ
  1617. ------------------------------------------------------------------
  1618. Bra
  1619. ^
  1620. [\x00-/:-@[-`{-\xff] (neg)
  1621. Ket
  1622. End
  1623. ------------------------------------------------------------------
  1624. Capturing subpattern count = 0
  1625. Options: anchored
  1626. No first char
  1627. No need char
  1628. /^[[:alpha:]]/DZ
  1629. ------------------------------------------------------------------
  1630. Bra
  1631. ^
  1632. [A-Za-z]
  1633. Ket
  1634. End
  1635. ------------------------------------------------------------------
  1636. Capturing subpattern count = 0
  1637. Options: anchored
  1638. No first char
  1639. No need char
  1640. /^[[:^alpha:]]/DZ
  1641. ------------------------------------------------------------------
  1642. Bra
  1643. ^
  1644. [\x00-@[-`{-\xff] (neg)
  1645. Ket
  1646. End
  1647. ------------------------------------------------------------------
  1648. Capturing subpattern count = 0
  1649. Options: anchored
  1650. No first char
  1651. No need char
  1652. /[_[:alpha:]]/IS
  1653. Capturing subpattern count = 0
  1654. No options
  1655. No first char
  1656. No need char
  1657. Subject length lower bound = 1
  1658. Starting chars: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
  1659. _ a b c d e f g h i j k l m n o p q r s t u v w x y z
  1660. /^[[:ascii:]]/DZ
  1661. ------------------------------------------------------------------
  1662. Bra
  1663. ^
  1664. [\x00-\x7f]
  1665. Ket
  1666. End
  1667. ------------------------------------------------------------------
  1668. Capturing subpattern count = 0
  1669. Options: anchored
  1670. No first char
  1671. No need char
  1672. /^[[:^ascii:]]/DZ
  1673. ------------------------------------------------------------------
  1674. Bra
  1675. ^
  1676. [\x80-\xff] (neg)
  1677. Ket
  1678. End
  1679. ------------------------------------------------------------------
  1680. Capturing subpattern count = 0
  1681. Options: anchored
  1682. No first char
  1683. No need char
  1684. /^[[:blank:]]/DZ
  1685. ------------------------------------------------------------------
  1686. Bra
  1687. ^
  1688. [\x09 ]
  1689. Ket
  1690. End
  1691. ------------------------------------------------------------------
  1692. Capturing subpattern count = 0
  1693. Options: anchored
  1694. No first char
  1695. No need char
  1696. /^[[:^blank:]]/DZ
  1697. ------------------------------------------------------------------
  1698. Bra
  1699. ^
  1700. [\x00-\x08\x0a-\x1f!-\xff] (neg)
  1701. Ket
  1702. End
  1703. ------------------------------------------------------------------
  1704. Capturing subpattern count = 0
  1705. Options: anchored
  1706. No first char
  1707. No need char
  1708. /[\n\x0b\x0c\x0d[:blank:]]/IS
  1709. Capturing subpattern count = 0
  1710. Contains explicit CR or LF match
  1711. No options
  1712. No first char
  1713. No need char
  1714. Subject length lower bound = 1
  1715. Starting chars: \x09 \x0a \x0b \x0c \x0d \x20
  1716. /^[[:cntrl:]]/DZ
  1717. ------------------------------------------------------------------
  1718. Bra
  1719. ^
  1720. [\x00-\x1f\x7f]
  1721. Ket
  1722. End
  1723. ------------------------------------------------------------------
  1724. Capturing subpattern count = 0
  1725. Options: anchored
  1726. No first char
  1727. No need char
  1728. /^[[:digit:]]/DZ
  1729. ------------------------------------------------------------------
  1730. Bra
  1731. ^
  1732. [0-9]
  1733. Ket
  1734. End
  1735. ------------------------------------------------------------------
  1736. Capturing subpattern count = 0
  1737. Options: anchored
  1738. No first char
  1739. No need char
  1740. /^[[:graph:]]/DZ
  1741. ------------------------------------------------------------------
  1742. Bra
  1743. ^
  1744. [!-~]
  1745. Ket
  1746. End
  1747. ------------------------------------------------------------------
  1748. Capturing subpattern count = 0
  1749. Options: anchored
  1750. No first char
  1751. No need char
  1752. /^[[:lower:]]/DZ
  1753. ------------------------------------------------------------------
  1754. Bra
  1755. ^
  1756. [a-z]
  1757. Ket
  1758. End
  1759. ------------------------------------------------------------------
  1760. Capturing subpattern count = 0
  1761. Options: anchored
  1762. No first char
  1763. No need char
  1764. /^[[:print:]]/DZ
  1765. ------------------------------------------------------------------
  1766. Bra
  1767. ^
  1768. [ -~]
  1769. Ket
  1770. End
  1771. ------------------------------------------------------------------
  1772. Capturing subpattern count = 0
  1773. Options: anchored
  1774. No first char
  1775. No need char
  1776. /^[[:punct:]]/DZ
  1777. ------------------------------------------------------------------
  1778. Bra
  1779. ^
  1780. [!-/:-@[-`{-~]
  1781. Ket
  1782. End
  1783. ------------------------------------------------------------------
  1784. Capturing subpattern count = 0
  1785. Options: anchored
  1786. No first char
  1787. No need char
  1788. /^[[:space:]]/DZ
  1789. ------------------------------------------------------------------
  1790. Bra
  1791. ^
  1792. [\x09-\x0d ]
  1793. Ket
  1794. End
  1795. ------------------------------------------------------------------
  1796. Capturing subpattern count = 0
  1797. Options: anchored
  1798. No first char
  1799. No need char
  1800. /^[[:upper:]]/DZ
  1801. ------------------------------------------------------------------
  1802. Bra
  1803. ^
  1804. [A-Z]
  1805. Ket
  1806. End
  1807. ------------------------------------------------------------------
  1808. Capturing subpattern count = 0
  1809. Options: anchored
  1810. No first char
  1811. No need char
  1812. /^[[:xdigit:]]/DZ
  1813. ------------------------------------------------------------------
  1814. Bra
  1815. ^
  1816. [0-9A-Fa-f]
  1817. Ket
  1818. End
  1819. ------------------------------------------------------------------
  1820. Capturing subpattern count = 0
  1821. Options: anchored
  1822. No first char
  1823. No need char
  1824. /^[[:word:]]/DZ
  1825. ------------------------------------------------------------------
  1826. Bra
  1827. ^
  1828. [0-9A-Z_a-z]
  1829. Ket
  1830. End
  1831. ------------------------------------------------------------------
  1832. Capturing subpattern count = 0
  1833. Options: anchored
  1834. No first char
  1835. No need char
  1836. /^[[:^cntrl:]]/DZ
  1837. ------------------------------------------------------------------
  1838. Bra
  1839. ^
  1840. [ -~\x80-\xff] (neg)
  1841. Ket
  1842. End
  1843. ------------------------------------------------------------------
  1844. Capturing subpattern count = 0
  1845. Options: anchored
  1846. No first char
  1847. No need char
  1848. /^[12[:^digit:]]/DZ
  1849. ------------------------------------------------------------------
  1850. Bra
  1851. ^
  1852. [\x00-/12:-\xff] (neg)
  1853. Ket
  1854. End
  1855. ------------------------------------------------------------------
  1856. Capturing subpattern count = 0
  1857. Options: anchored
  1858. No first char
  1859. No need char
  1860. /^[[:^blank:]]/DZ
  1861. ------------------------------------------------------------------
  1862. Bra
  1863. ^
  1864. [\x00-\x08\x0a-\x1f!-\xff] (neg)
  1865. Ket
  1866. End
  1867. ------------------------------------------------------------------
  1868. Capturing subpattern count = 0
  1869. Options: anchored
  1870. No first char
  1871. No need char
  1872. /[01[:alpha:]%]/DZ
  1873. ------------------------------------------------------------------
  1874. Bra
  1875. [%01A-Za-z]
  1876. Ket
  1877. End
  1878. ------------------------------------------------------------------
  1879. Capturing subpattern count = 0
  1880. No options
  1881. No first char
  1882. No need char
  1883. /[[.ch.]]/I
  1884. Failed: POSIX collating elements are not supported at offset 1
  1885. /[[=ch=]]/I
  1886. Failed: POSIX collating elements are not supported at offset 1
  1887. /[[:rhubarb:]]/I
  1888. Failed: unknown POSIX class name at offset 3
  1889. /[[:upper:]]/Ii
  1890. Capturing subpattern count = 0
  1891. Options: caseless
  1892. No first char
  1893. No need char
  1894. A
  1895. 0: A
  1896. a
  1897. 0: a
  1898. /[[:lower:]]/Ii
  1899. Capturing subpattern count = 0
  1900. Options: caseless
  1901. No first char
  1902. No need char
  1903. A
  1904. 0: A
  1905. a
  1906. 0: a
  1907. /((?-i)[[:lower:]])[[:lower:]]/Ii
  1908. Capturing subpattern count = 1
  1909. Options: caseless
  1910. No first char
  1911. No need char
  1912. ab
  1913. 0: ab
  1914. 1: a
  1915. aB
  1916. 0: aB
  1917. 1: a
  1918. *** Failers
  1919. 0: ai
  1920. 1: a
  1921. Ab
  1922. No match
  1923. AB
  1924. No match
  1925. /[\200-\110]/I
  1926. Failed: range out of order in character class at offset 9
  1927. /^(?(0)f|b)oo/I
  1928. Failed: invalid condition (?(0) at offset 6
  1929. /This one's here because of the large output vector needed/I
  1930. Capturing subpattern count = 0
  1931. No options
  1932. First char = 'T'
  1933. Need char = 'd'
  1934. /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
  1935. Capturing subpattern count = 271
  1936. Max back reference = 270
  1937. No options
  1938. No first char
  1939. No need char
  1940. \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
  1941. 0: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
  1942. 1: 1
  1943. 2: 2
  1944. 3: 3
  1945. 4: 4
  1946. 5: 5
  1947. 6: 6
  1948. 7: 7
  1949. 8: 8
  1950. 9: 9
  1951. 10: 10
  1952. 11: 11
  1953. 12: 12
  1954. 13: 13
  1955. 14: 14
  1956. 15: 15
  1957. 16: 16
  1958. 17: 17
  1959. 18: 18
  1960. 19: 19
  1961. 20: 20
  1962. 21: 21
  1963. 22: 22
  1964. 23: 23
  1965. 24: 24
  1966. 25: 25
  1967. 26: 26
  1968. 27: 27
  1969. 28: 28
  1970. 29: 29
  1971. 30: 30
  1972. 31: 31
  1973. 32: 32
  1974. 33: 33
  1975. 34: 34
  1976. 35: 35
  1977. 36: 36
  1978. 37: 37
  1979. 38: 38
  1980. 39: 39
  1981. 40: 40
  1982. 41: 41
  1983. 42: 42
  1984. 43: 43
  1985. 44: 44
  1986. 45: 45
  1987. 46: 46
  1988. 47: 47
  1989. 48: 48
  1990. 49: 49
  1991. 50: 50
  1992. 51: 51
  1993. 52: 52
  1994. 53: 53
  1995. 54: 54
  1996. 55: 55
  1997. 56: 56
  1998. 57: 57
  1999. 58: 58
  2000. 59: 59
  2001. 60: 60
  2002. 61: 61
  2003. 62: 62
  2004. 63: 63
  2005. 64: 64
  2006. 65: 65
  2007. 66: 66
  2008. 67: 67
  2009. 68: 68
  2010. 69: 69
  2011. 70: 70
  2012. 71: 71
  2013. 72: 72
  2014. 73: 73
  2015. 74: 74
  2016. 75: 75
  2017. 76: 76
  2018. 77: 77
  2019. 78: 78
  2020. 79: 79
  2021. 80: 80
  2022. 81: 81
  2023. 82: 82
  2024. 83: 83
  2025. 84: 84
  2026. 85: 85
  2027. 86: 86
  2028. 87: 87
  2029. 88: 88
  2030. 89: 89
  2031. 90: 90
  2032. 91: 91
  2033. 92: 92
  2034. 93: 93
  2035. 94: 94
  2036. 95: 95
  2037. 96: 96
  2038. 97: 97
  2039. 98: 98
  2040. 99: 99
  2041. 100: 100
  2042. 101: 101
  2043. 102: 102
  2044. 103: 103
  2045. 104: 104
  2046. 105: 105
  2047. 106: 106
  2048. 107: 107
  2049. 108: 108
  2050. 109: 109
  2051. 110: 110
  2052. 111: 111
  2053. 112: 112
  2054. 113: 113
  2055. 114: 114
  2056. 115: 115
  2057. 116: 116
  2058. 117: 117
  2059. 118: 118
  2060. 119: 119
  2061. 120: 120
  2062. 121: 121
  2063. 122: 122
  2064. 123: 123
  2065. 124: 124
  2066. 125: 125
  2067. 126: 126
  2068. 127: 127
  2069. 128: 128
  2070. 129: 129
  2071. 130: 130
  2072. 131: 131
  2073. 132: 132
  2074. 133: 133
  2075. 134: 134
  2076. 135: 135
  2077. 136: 136
  2078. 137: 137
  2079. 138: 138
  2080. 139: 139
  2081. 140: 140
  2082. 141: 141
  2083. 142: 142
  2084. 143: 143
  2085. 144: 144
  2086. 145: 145
  2087. 146: 146
  2088. 147: 147
  2089. 148: 148
  2090. 149: 149
  2091. 150: 150
  2092. 151: 151
  2093. 152: 152
  2094. 153: 153
  2095. 154: 154
  2096. 155: 155
  2097. 156: 156
  2098. 157: 157
  2099. 158: 158
  2100. 159: 159
  2101. 160: 160
  2102. 161: 161
  2103. 162: 162
  2104. 163: 163
  2105. 164: 164
  2106. 165: 165
  2107. 166: 166
  2108. 167: 167
  2109. 168: 168
  2110. 169: 169
  2111. 170: 170
  2112. 171: 171
  2113. 172: 172
  2114. 173: 173
  2115. 174: 174
  2116. 175: 175
  2117. 176: 176
  2118. 177: 177
  2119. 178: 178
  2120. 179: 179
  2121. 180: 180
  2122. 181: 181
  2123. 182: 182
  2124. 183: 183
  2125. 184: 184
  2126. 185: 185
  2127. 186: 186
  2128. 187: 187
  2129. 188: 188
  2130. 189: 189
  2131. 190: 190
  2132. 191: 191
  2133. 192: 192
  2134. 193: 193
  2135. 194: 194
  2136. 195: 195
  2137. 196: 196
  2138. 197: 197
  2139. 198: 198
  2140. 199: 199
  2141. 200: 200
  2142. 201: 201
  2143. 202: 202
  2144. 203: 203
  2145. 204: 204
  2146. 205: 205
  2147. 206: 206
  2148. 207: 207
  2149. 208: 208
  2150. 209: 209
  2151. 210: 210
  2152. 211: 211
  2153. 212: 212
  2154. 213: 213
  2155. 214: 214
  2156. 215: 215
  2157. 216: 216
  2158. 217: 217
  2159. 218: 218
  2160. 219: 219
  2161. 220: 220
  2162. 221: 221
  2163. 222: 222
  2164. 223: 223
  2165. 224: 224
  2166. 225: 225
  2167. 226: 226
  2168. 227: 227
  2169. 228: 228
  2170. 229: 229
  2171. 230: 230
  2172. 231: 231
  2173. 232: 232
  2174. 233: 233
  2175. 234: 234
  2176. 235: 235
  2177. 236: 236
  2178. 237: 237
  2179. 238: 238
  2180. 239: 239
  2181. 240: 240
  2182. 241: 241
  2183. 242: 242
  2184. 243: 243
  2185. 244: 244
  2186. 245: 245
  2187. 246: 246
  2188. 247: 247
  2189. 248: 248
  2190. 249: 249
  2191. 250: 250
  2192. 251: 251
  2193. 252: 252
  2194. 253: 253
  2195. 254: 254
  2196. 255: 255
  2197. 256: 256
  2198. 257: 257
  2199. 258: 258
  2200. 259: 259
  2201. 260: 260
  2202. 261: 261
  2203. 262: 262
  2204. 263: 263
  2205. 264: 264
  2206. 265: 265
  2207. 266: 266
  2208. 267: 267
  2209. 268: 268
  2210. 269: 269
  2211. 270: ABC
  2212. 271: ABC
  2213. /This one's here because Perl does this differently and PCRE can't at present/I
  2214. Capturing subpattern count = 0
  2215. No options
  2216. First char = 'T'
  2217. Need char = 't'
  2218. /(main(O)?)+/I
  2219. Capturing subpattern count = 2
  2220. No options
  2221. First char = 'm'
  2222. Need char = 'n'
  2223. mainmain
  2224. 0: mainmain
  2225. 1: main
  2226. mainOmain
  2227. 0: mainOmain
  2228. 1: main
  2229. 2: O
  2230. /These are all cases where Perl does it differently (nested captures)/I
  2231. Capturing subpattern count = 1
  2232. No options
  2233. First char = 'T'
  2234. Need char = 's'
  2235. /^(a(b)?)+$/I
  2236. Capturing subpattern count = 2
  2237. Options: anchored
  2238. No first char
  2239. No need char
  2240. aba
  2241. 0: aba
  2242. 1: a
  2243. 2: b
  2244. /^(aa(bb)?)+$/I
  2245. Capturing subpattern count = 2
  2246. Options: anchored
  2247. No first char
  2248. No need char
  2249. aabbaa
  2250. 0: aabbaa
  2251. 1: aa
  2252. 2: bb
  2253. /^(aa|aa(bb))+$/I
  2254. Capturing subpattern count = 2
  2255. Options: anchored
  2256. No first char
  2257. No need char
  2258. aabbaa
  2259. 0: aabbaa
  2260. 1: aa
  2261. 2: bb
  2262. /^(aa(bb)??)+$/I
  2263. Capturing subpattern count = 2
  2264. Options: anchored
  2265. No first char
  2266. No need char
  2267. aabbaa
  2268. 0: aabbaa
  2269. 1: aa
  2270. 2: bb
  2271. /^(?:aa(bb)?)+$/I
  2272. Capturing subpattern count = 1
  2273. Options: anchored
  2274. No first char
  2275. No need char
  2276. aabbaa
  2277. 0: aabbaa
  2278. 1: bb
  2279. /^(aa(b(b))?)+$/I
  2280. Capturing subpattern count = 3
  2281. Options: anchored
  2282. No first char
  2283. No need char
  2284. aabbaa
  2285. 0: aabbaa
  2286. 1: aa
  2287. 2: bb
  2288. 3: b
  2289. /^(?:aa(b(b))?)+$/I
  2290. Capturing subpattern count = 2
  2291. Options: anchored
  2292. No first char
  2293. No need char
  2294. aabbaa
  2295. 0: aabbaa
  2296. 1: bb
  2297. 2: b
  2298. /^(?:aa(b(?:b))?)+$/I
  2299. Capturing subpattern count = 1
  2300. Options: anchored
  2301. No first char
  2302. No need char
  2303. aabbaa
  2304. 0: aabbaa
  2305. 1: bb
  2306. /^(?:aa(bb(?:b))?)+$/I
  2307. Capturing subpattern count = 1
  2308. Options: anchored
  2309. No first char
  2310. No need char
  2311. aabbbaa
  2312. 0: aabbbaa
  2313. 1: bbb
  2314. /^(?:aa(b(?:bb))?)+$/I
  2315. Capturing subpattern count = 1
  2316. Options: anchored
  2317. No first char
  2318. No need char
  2319. aabbbaa
  2320. 0: aabbbaa
  2321. 1: bbb
  2322. /^(?:aa(?:b(b))?)+$/I
  2323. Capturing subpattern count = 1
  2324. Options: anchored
  2325. No first char
  2326. No need char
  2327. aabbaa
  2328. 0: aabbaa
  2329. 1: b
  2330. /^(?:aa(?:b(bb))?)+$/I
  2331. Capturing subpattern count = 1
  2332. Options: anchored
  2333. No first char
  2334. No need char
  2335. aabbbaa
  2336. 0: aabbbaa
  2337. 1: bb
  2338. /^(aa(b(bb))?)+$/I
  2339. Capturing subpattern count = 3
  2340. Options: anchored
  2341. No first char
  2342. No need char
  2343. aabbbaa
  2344. 0: aabbbaa
  2345. 1: aa
  2346. 2: bbb
  2347. 3: bb
  2348. /^(aa(bb(bb))?)+$/I
  2349. Capturing subpattern count = 3
  2350. Options: anchored
  2351. No first char
  2352. No need char
  2353. aabbbbaa
  2354. 0: aabbbbaa
  2355. 1: aa
  2356. 2: bbbb
  2357. 3: bb
  2358. /--------------------------------------------------------------------/I
  2359. Capturing subpattern count = 0
  2360. No options
  2361. First char = '-'
  2362. Need char = '-'
  2363. /#/IxDZ
  2364. ------------------------------------------------------------------
  2365. Bra
  2366. Ket
  2367. End
  2368. ------------------------------------------------------------------
  2369. Capturing subpattern count = 0
  2370. May match empty string
  2371. Options: extended
  2372. No first char
  2373. No need char
  2374. /a#/IxDZ
  2375. ------------------------------------------------------------------
  2376. Bra
  2377. a
  2378. Ket
  2379. End
  2380. ------------------------------------------------------------------
  2381. Capturing subpattern count = 0
  2382. Options: extended
  2383. First char = 'a'
  2384. No need char
  2385. /[\s]/DZ
  2386. ------------------------------------------------------------------
  2387. Bra
  2388. [\x09-\x0d ]
  2389. Ket
  2390. End
  2391. ------------------------------------------------------------------
  2392. Capturing subpattern count = 0
  2393. No options
  2394. No first char
  2395. No need char
  2396. /[\S]/DZ
  2397. ------------------------------------------------------------------
  2398. Bra
  2399. [\x00-\x08\x0e-\x1f!-\xff] (neg)
  2400. Ket
  2401. End
  2402. ------------------------------------------------------------------
  2403. Capturing subpattern count = 0
  2404. No options
  2405. No first char
  2406. No need char
  2407. /a(?i)b/DZ
  2408. ------------------------------------------------------------------
  2409. Bra
  2410. a
  2411. /i b
  2412. Ket
  2413. End
  2414. ------------------------------------------------------------------
  2415. Capturing subpattern count = 0
  2416. No options
  2417. First char = 'a'
  2418. Need char = 'b' (caseless)
  2419. ab
  2420. 0: ab
  2421. aB
  2422. 0: aB
  2423. *** Failers
  2424. No match
  2425. AB
  2426. No match
  2427. /(a(?i)b)/DZ
  2428. ------------------------------------------------------------------
  2429. Bra
  2430. CBra 1
  2431. a
  2432. /i b
  2433. Ket
  2434. Ket
  2435. End
  2436. ------------------------------------------------------------------
  2437. Capturing subpattern count = 1
  2438. No options
  2439. First char = 'a'
  2440. Need char = 'b' (caseless)
  2441. ab
  2442. 0: ab
  2443. 1: ab
  2444. aB
  2445. 0: aB
  2446. 1: aB
  2447. *** Failers
  2448. No match
  2449. AB
  2450. No match
  2451. / (?i)abc/IxDZ
  2452. ------------------------------------------------------------------
  2453. Bra
  2454. /i abc
  2455. Ket
  2456. End
  2457. ------------------------------------------------------------------
  2458. Capturing subpattern count = 0
  2459. Options: extended
  2460. First char = 'a' (caseless)
  2461. Need char = 'c' (caseless)
  2462. /#this is a comment
  2463. (?i)abc/IxDZ
  2464. ------------------------------------------------------------------
  2465. Bra
  2466. /i abc
  2467. Ket
  2468. End
  2469. ------------------------------------------------------------------
  2470. Capturing subpattern count = 0
  2471. Options: extended
  2472. First char = 'a' (caseless)
  2473. Need char = 'c' (caseless)
  2474. /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
  2475. ------------------------------------------------------------------
  2476. Bra
  2477. 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
  2478. Ket
  2479. End
  2480. ------------------------------------------------------------------
  2481. Capturing subpattern count = 0
  2482. No options
  2483. First char = '1'
  2484. Need char = '0'
  2485. /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
  2486. ------------------------------------------------------------------
  2487. Bra
  2488. 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
  2489. Ket
  2490. End
  2491. ------------------------------------------------------------------
  2492. Capturing subpattern count = 0
  2493. No options
  2494. First char = '1'
  2495. Need char = '0'
  2496. /\Q\E/DZ
  2497. ------------------------------------------------------------------
  2498. Bra
  2499. Ket
  2500. End
  2501. ------------------------------------------------------------------
  2502. Capturing subpattern count = 0
  2503. May match empty string
  2504. No options
  2505. No first char
  2506. No need char
  2507. \
  2508. 0:
  2509. /\Q\Ex/DZ
  2510. ------------------------------------------------------------------
  2511. Bra
  2512. x
  2513. Ket
  2514. End
  2515. ------------------------------------------------------------------
  2516. Capturing subpattern count = 0
  2517. No options
  2518. First char = 'x'
  2519. No need char
  2520. / \Q\E/DZ
  2521. ------------------------------------------------------------------
  2522. Bra
  2523. Ket
  2524. End
  2525. ------------------------------------------------------------------
  2526. Capturing subpattern count = 0
  2527. No options
  2528. First char = ' '
  2529. No need char
  2530. /a\Q\E/DZ
  2531. ------------------------------------------------------------------
  2532. Bra
  2533. a
  2534. Ket
  2535. End
  2536. ------------------------------------------------------------------
  2537. Capturing subpattern count = 0
  2538. No options
  2539. First char = 'a'
  2540. No need char
  2541. abc
  2542. 0: a
  2543. bca
  2544. 0: a
  2545. bac
  2546. 0: a
  2547. /a\Q\Eb/DZ
  2548. ------------------------------------------------------------------
  2549. Bra
  2550. ab
  2551. Ket
  2552. End
  2553. ------------------------------------------------------------------
  2554. Capturing subpattern count = 0
  2555. No options
  2556. First char = 'a'
  2557. Need char = 'b'
  2558. abc
  2559. 0: ab
  2560. /\Q\Eabc/DZ
  2561. ------------------------------------------------------------------
  2562. Bra
  2563. abc
  2564. Ket
  2565. End
  2566. ------------------------------------------------------------------
  2567. Capturing subpattern count = 0
  2568. No options
  2569. First char = 'a'
  2570. Need char = 'c'
  2571. /x*+\w/DZ
  2572. ------------------------------------------------------------------
  2573. Bra
  2574. x*+
  2575. \w
  2576. Ket
  2577. End
  2578. ------------------------------------------------------------------
  2579. Capturing subpattern count = 0
  2580. No options
  2581. No first char
  2582. No need char
  2583. *** Failers
  2584. 0: F
  2585. xxxxx
  2586. No match
  2587. /x?+/DZ
  2588. ------------------------------------------------------------------
  2589. Bra
  2590. x?+
  2591. Ket
  2592. End
  2593. ------------------------------------------------------------------
  2594. Capturing subpattern count = 0
  2595. May match empty string
  2596. No options
  2597. No first char
  2598. No need char
  2599. /x++/DZ
  2600. ------------------------------------------------------------------
  2601. Bra
  2602. x++
  2603. Ket
  2604. End
  2605. ------------------------------------------------------------------
  2606. Capturing subpattern count = 0
  2607. No options
  2608. First char = 'x'
  2609. No need char
  2610. /x{1,3}+/BZO
  2611. ------------------------------------------------------------------
  2612. Bra
  2613. x
  2614. x{0,2}+
  2615. Ket
  2616. End
  2617. ------------------------------------------------------------------
  2618. /x{1,3}+/BZOi
  2619. ------------------------------------------------------------------
  2620. Bra
  2621. /i x
  2622. /i x{0,2}+
  2623. Ket
  2624. End
  2625. ------------------------------------------------------------------
  2626. /[^x]{1,3}+/BZO
  2627. ------------------------------------------------------------------
  2628. Bra
  2629. [^x]
  2630. [^x]{0,2}+
  2631. Ket
  2632. End
  2633. ------------------------------------------------------------------
  2634. /[^x]{1,3}+/BZOi
  2635. ------------------------------------------------------------------
  2636. Bra
  2637. /i [^x]
  2638. /i [^x]{0,2}+
  2639. Ket
  2640. End
  2641. ------------------------------------------------------------------
  2642. /(x)*+/DZ
  2643. ------------------------------------------------------------------
  2644. Bra
  2645. Braposzero
  2646. CBraPos 1
  2647. x
  2648. KetRpos
  2649. Ket
  2650. End
  2651. ------------------------------------------------------------------
  2652. Capturing subpattern count = 1
  2653. May match empty string
  2654. No options
  2655. No first char
  2656. No need char
  2657. /^(\w++|\s++)*$/I
  2658. Capturing subpattern count = 1
  2659. May match empty string
  2660. Options: anchored
  2661. No first char
  2662. No need char
  2663. now is the time for all good men to come to the aid of the party
  2664. 0: now is the time for all good men to come to the aid of the party
  2665. 1: party
  2666. *** Failers
  2667. No match
  2668. this is not a line with only words and spaces!
  2669. No match
  2670. /(\d++)(\w)/I
  2671. Capturing subpattern count = 2
  2672. No options
  2673. No first char
  2674. No need char
  2675. 12345a
  2676. 0: 12345a
  2677. 1: 12345
  2678. 2: a
  2679. *** Failers
  2680. No match
  2681. 12345+
  2682. No match
  2683. /a++b/I
  2684. Capturing subpattern count = 0
  2685. No options
  2686. First char = 'a'
  2687. Need char = 'b'
  2688. aaab
  2689. 0: aaab
  2690. /(a++b)/I
  2691. Capturing subpattern count = 1
  2692. No options
  2693. First char = 'a'
  2694. Need char = 'b'
  2695. aaab
  2696. 0: aaab
  2697. 1: aaab
  2698. /(a++)b/I
  2699. Capturing subpattern count = 1
  2700. No options
  2701. First char = 'a'
  2702. Need char = 'b'
  2703. aaab
  2704. 0: aaab
  2705. 1: aaa
  2706. /([^()]++|\([^()]*\))+/I
  2707. Capturing subpattern count = 1
  2708. No options
  2709. No first char
  2710. No need char
  2711. ((abc(ade)ufh()()x
  2712. 0: abc(ade)ufh()()x
  2713. 1: x
  2714. /\(([^()]++|\([^()]+\))+\)/I
  2715. Capturing subpattern count = 1
  2716. No options
  2717. First char = '('
  2718. Need char = ')'
  2719. (abc)
  2720. 0: (abc)
  2721. 1: abc
  2722. (abc(def)xyz)
  2723. 0: (abc(def)xyz)
  2724. 1: xyz
  2725. *** Failers
  2726. No match
  2727. ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  2728. No match
  2729. /(abc){1,3}+/DZ
  2730. ------------------------------------------------------------------
  2731. Bra
  2732. Once
  2733. CBra 1
  2734. abc
  2735. Ket
  2736. Brazero
  2737. Bra
  2738. CBra 1
  2739. abc
  2740. Ket
  2741. Brazero
  2742. CBra 1
  2743. abc
  2744. Ket
  2745. Ket
  2746. Ket
  2747. Ket
  2748. End
  2749. ------------------------------------------------------------------
  2750. Capturing subpattern count = 1
  2751. No options
  2752. First char = 'a'
  2753. Need char = 'c'
  2754. /a+?+/I
  2755. Failed: nothing to repeat at offset 3
  2756. /a{2,3}?+b/I
  2757. Failed: nothing to repeat at offset 7
  2758. /(?U)a+?+/I
  2759. Failed: nothing to repeat at offset 7
  2760. /a{2,3}?+b/IU
  2761. Failed: nothing to repeat at offset 7
  2762. /x(?U)a++b/DZ
  2763. ------------------------------------------------------------------
  2764. Bra
  2765. x
  2766. a++
  2767. b
  2768. Ket
  2769. End
  2770. ------------------------------------------------------------------
  2771. Capturing subpattern count = 0
  2772. No options
  2773. First char = 'x'
  2774. Need char = 'b'
  2775. xaaaab
  2776. 0: xaaaab
  2777. /(?U)xa++b/DZ
  2778. ------------------------------------------------------------------
  2779. Bra
  2780. x
  2781. a++
  2782. b
  2783. Ket
  2784. End
  2785. ------------------------------------------------------------------
  2786. Capturing subpattern count = 0
  2787. No options
  2788. First char = 'x'
  2789. Need char = 'b'
  2790. xaaaab
  2791. 0: xaaaab
  2792. /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
  2793. ------------------------------------------------------------------
  2794. Bra
  2795. ^
  2796. CBra 1
  2797. CBra 2
  2798. a+
  2799. Ket
  2800. CBra 3
  2801. [ab]+?
  2802. Ket
  2803. CBra 4
  2804. [bc]+
  2805. Ket
  2806. CBra 5
  2807. \w*+
  2808. Ket
  2809. Ket
  2810. Ket
  2811. End
  2812. ------------------------------------------------------------------
  2813. Capturing subpattern count = 5
  2814. Options: anchored
  2815. No first char
  2816. No need char
  2817. /^x(?U)a+b/DZ
  2818. ------------------------------------------------------------------
  2819. Bra
  2820. ^
  2821. x
  2822. a++
  2823. b
  2824. Ket
  2825. End
  2826. ------------------------------------------------------------------
  2827. Capturing subpattern count = 0
  2828. Options: anchored
  2829. No first char
  2830. Need char = 'b'
  2831. /^x(?U)(a+)b/DZ
  2832. ------------------------------------------------------------------
  2833. Bra
  2834. ^
  2835. x
  2836. CBra 1
  2837. a+?
  2838. Ket
  2839. b
  2840. Ket
  2841. End
  2842. ------------------------------------------------------------------
  2843. Capturing subpattern count = 1
  2844. Options: anchored
  2845. No first char
  2846. Need char = 'b'
  2847. /[.x.]/I
  2848. Failed: POSIX collating elements are not supported at offset 0
  2849. /[=x=]/I
  2850. Failed: POSIX collating elements are not supported at offset 0
  2851. /[:x:]/I
  2852. Failed: POSIX named classes are supported only within a class at offset 0
  2853. /\l/I
  2854. Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
  2855. /\L/I
  2856. Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
  2857. /\N{name}/I
  2858. Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
  2859. /\u/I
  2860. Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
  2861. /\U/I
  2862. Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
  2863. /a{1,3}b/U
  2864. ab
  2865. 0: ab
  2866. /[/I
  2867. Failed: missing terminating ] for character class at offset 1
  2868. /[a-/I
  2869. Failed: missing terminating ] for character class at offset 3
  2870. /[[:space:]/I
  2871. Failed: missing terminating ] for character class at offset 10
  2872. /[\s]/IDZ
  2873. ------------------------------------------------------------------
  2874. Bra
  2875. [\x09-\x0d ]
  2876. Ket
  2877. End
  2878. ------------------------------------------------------------------
  2879. Capturing subpattern count = 0
  2880. No options
  2881. No first char
  2882. No need char
  2883. /[[:space:]]/IDZ
  2884. ------------------------------------------------------------------
  2885. Bra
  2886. [\x09-\x0d ]
  2887. Ket
  2888. End
  2889. ------------------------------------------------------------------
  2890. Capturing subpattern count = 0
  2891. No options
  2892. No first char
  2893. No need char
  2894. /[[:space:]abcde]/IDZ
  2895. ------------------------------------------------------------------
  2896. Bra
  2897. [\x09-\x0d a-e]
  2898. Ket
  2899. End
  2900. ------------------------------------------------------------------
  2901. Capturing subpattern count = 0
  2902. No options
  2903. No first char
  2904. No need char
  2905. /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix
  2906. Capturing subpattern count = 0
  2907. Options: extended
  2908. First char = '<'
  2909. Need char = '>'
  2910. <>
  2911. 0: <>
  2912. <abcd>
  2913. 0: <abcd>
  2914. <abc <123> hij>
  2915. 0: <abc <123> hij>
  2916. <abc <def> hij>
  2917. 0: <def>
  2918. <abc<>def>
  2919. 0: <abc<>def>
  2920. <abc<>
  2921. 0: <>
  2922. *** Failers
  2923. No match
  2924. <abc
  2925. No match
  2926. |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
  2927. ------------------------------------------------------------------
  2928. Bra
  2929. 8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
  2930. \b
  2931. Ket
  2932. End
  2933. ------------------------------------------------------------------
  2934. Capturing subpattern count = 0
  2935. Max lookbehind = 1
  2936. No options
  2937. First char = '8'
  2938. Need char = 'X'
  2939. |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
  2940. ------------------------------------------------------------------
  2941. Bra
  2942. $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
  2943. \b
  2944. Ket
  2945. End
  2946. ------------------------------------------------------------------
  2947. Capturing subpattern count = 0
  2948. Max lookbehind = 1
  2949. No options
  2950. First char = '$'
  2951. Need char = 'X'
  2952. /(.*)\d+\1/I
  2953. Capturing subpattern count = 1
  2954. Max back reference = 1
  2955. No options
  2956. No first char
  2957. No need char
  2958. /(.*)\d+/I
  2959. Capturing subpattern count = 1
  2960. No options
  2961. First char at start or follows newline
  2962. No need char
  2963. /(.*)\d+\1/Is
  2964. Capturing subpattern count = 1
  2965. Max back reference = 1
  2966. Options: dotall
  2967. No first char
  2968. No need char
  2969. /(.*)\d+/Is
  2970. Capturing subpattern count = 1
  2971. Options: anchored dotall
  2972. No first char
  2973. No need char
  2974. /(.*(xyz))\d+\2/I
  2975. Capturing subpattern count = 2
  2976. Max back reference = 2
  2977. No options
  2978. First char at start or follows newline
  2979. Need char = 'z'
  2980. /((.*))\d+\1/I
  2981. Capturing subpattern count = 2
  2982. Max back reference = 1
  2983. No options
  2984. No first char
  2985. No need char
  2986. abc123bc
  2987. 0: bc123bc
  2988. 1: bc
  2989. 2: bc
  2990. /a[b]/I
  2991. Capturing subpattern count = 0
  2992. No options
  2993. First char = 'a'
  2994. Need char = 'b'
  2995. /(?=a).*/I
  2996. Capturing subpattern count = 0
  2997. May match empty string
  2998. No options
  2999. First char = 'a'
  3000. No need char
  3001. /(?=abc).xyz/IiI
  3002. Capturing subpattern count = 0
  3003. Options: caseless
  3004. First char = 'a' (caseless)
  3005. Need char = 'z' (caseless)
  3006. /(?=abc)(?i).xyz/I
  3007. Capturing subpattern count = 0
  3008. No options
  3009. First char = 'a'
  3010. Need char = 'z' (caseless)
  3011. /(?=a)(?=b)/I
  3012. Capturing subpattern count = 0
  3013. May match empty string
  3014. No options
  3015. First char = 'a'
  3016. No need char
  3017. /(?=.)a/I
  3018. Capturing subpattern count = 0
  3019. No options
  3020. First char = 'a'
  3021. No need char
  3022. /((?=abcda)a)/I
  3023. Capturing subpattern count = 1
  3024. No options
  3025. First char = 'a'
  3026. Need char = 'a'
  3027. /((?=abcda)ab)/I
  3028. Capturing subpattern count = 1
  3029. No options
  3030. First char = 'a'
  3031. Need char = 'b'
  3032. /()a/I
  3033. Capturing subpattern count = 1
  3034. No options
  3035. No first char
  3036. Need char = 'a'
  3037. /(?(1)ab|ac)(.)/I
  3038. Capturing subpattern count = 1
  3039. Max back reference = 1
  3040. No options
  3041. First char = 'a'
  3042. No need char
  3043. /(?(1)abz|acz)(.)/I
  3044. Capturing subpattern count = 1
  3045. Max back reference = 1
  3046. No options
  3047. First char = 'a'
  3048. Need char = 'z'
  3049. /(?(1)abz)(.)/I
  3050. Capturing subpattern count = 1
  3051. Max back reference = 1
  3052. No options
  3053. No first char
  3054. No need char
  3055. /(?(1)abz)(1)23/I
  3056. Capturing subpattern count = 1
  3057. Max back reference = 1
  3058. No options
  3059. No first char
  3060. Need char = '3'
  3061. /(a)+/I
  3062. Capturing subpattern count = 1
  3063. No options
  3064. First char = 'a'
  3065. No need char
  3066. /(a){2,3}/I
  3067. Capturing subpattern count = 1
  3068. No options
  3069. First char = 'a'
  3070. Need char = 'a'
  3071. /(a)*/I
  3072. Capturing subpattern count = 1
  3073. May match empty string
  3074. No options
  3075. No first char
  3076. No need char
  3077. /[a]/I
  3078. Capturing subpattern count = 0
  3079. No options
  3080. First char = 'a'
  3081. No need char
  3082. /[ab]/I
  3083. Capturing subpattern count = 0
  3084. No options
  3085. No first char
  3086. No need char
  3087. /[ab]/IS
  3088. Capturing subpattern count = 0
  3089. No options
  3090. No first char
  3091. No need char
  3092. Subject length lower bound = 1
  3093. Starting chars: a b
  3094. /[^a]/I
  3095. Capturing subpattern count = 0
  3096. No options
  3097. No first char
  3098. No need char
  3099. /\d456/I
  3100. Capturing subpattern count = 0
  3101. No options
  3102. No first char
  3103. Need char = '6'
  3104. /\d456/IS
  3105. Capturing subpattern count = 0
  3106. No options
  3107. No first char
  3108. Need char = '6'
  3109. Subject length lower bound = 4
  3110. Starting chars: 0 1 2 3 4 5 6 7 8 9
  3111. /a^b/I
  3112. Capturing subpattern count = 0
  3113. No options
  3114. First char = 'a'
  3115. Need char = 'b'
  3116. /^a/Im
  3117. Capturing subpattern count = 0
  3118. Options: multiline
  3119. First char at start or follows newline
  3120. Need char = 'a'
  3121. abcde
  3122. 0: a
  3123. xy\nabc
  3124. 0: a
  3125. *** Failers
  3126. No match
  3127. xyabc
  3128. No match
  3129. /c|abc/I
  3130. Capturing subpattern count = 0
  3131. No options
  3132. No first char
  3133. Need char = 'c'
  3134. /(?i)[ab]/IS
  3135. Capturing subpattern count = 0
  3136. No options
  3137. No first char
  3138. No need char
  3139. Subject length lower bound = 1
  3140. Starting chars: A B a b
  3141. /[ab](?i)cd/IS
  3142. Capturing subpattern count = 0
  3143. No options
  3144. No first char
  3145. Need char = 'd' (caseless)
  3146. Subject length lower bound = 3
  3147. Starting chars: a b
  3148. /abc(?C)def/I
  3149. Capturing subpattern count = 0
  3150. No options
  3151. First char = 'a'
  3152. Need char = 'f'
  3153. abcdef
  3154. --->abcdef
  3155. 0 ^ ^ d
  3156. 0: abcdef
  3157. 1234abcdef
  3158. --->1234abcdef
  3159. 0 ^ ^ d
  3160. 0: abcdef
  3161. *** Failers
  3162. No match
  3163. abcxyz
  3164. No match
  3165. abcxyzf
  3166. --->abcxyzf
  3167. 0 ^ ^ d
  3168. No match
  3169. /abc(?C)de(?C1)f/I
  3170. Capturing subpattern count = 0
  3171. No options
  3172. First char = 'a'
  3173. Need char = 'f'
  3174. 123abcdef
  3175. --->123abcdef
  3176. 0 ^ ^ d
  3177. 1 ^ ^ f
  3178. 0: abcdef
  3179. /(?C1)\dabc(?C2)def/IS
  3180. Capturing subpattern count = 0
  3181. No options
  3182. No first char
  3183. Need char = 'f'
  3184. Subject length lower bound = 7
  3185. Starting chars: 0 1 2 3 4 5 6 7 8 9
  3186. 1234abcdef
  3187. --->1234abcdef
  3188. 1 ^ \d
  3189. 1 ^ \d
  3190. 1 ^ \d
  3191. 1 ^ \d
  3192. 2 ^ ^ d
  3193. 0: 4abcdef
  3194. *** Failers
  3195. No match
  3196. abcdef
  3197. No match
  3198. /(?C1)\dabc(?C2)def/ISS
  3199. Capturing subpattern count = 0
  3200. No options
  3201. No first char
  3202. Need char = 'f'
  3203. 1234abcdef
  3204. --->1234abcdef
  3205. 1 ^ \d
  3206. 1 ^ \d
  3207. 1 ^ \d
  3208. 1 ^ \d
  3209. 2 ^ ^ d
  3210. 0: 4abcdef
  3211. *** Failers
  3212. No match
  3213. abcdef
  3214. --->abcdef
  3215. 1 ^ \d
  3216. 1 ^ \d
  3217. 1 ^ \d
  3218. 1 ^ \d
  3219. 1 ^ \d
  3220. 1 ^ \d
  3221. No match
  3222. /(?C255)ab/I
  3223. Capturing subpattern count = 0
  3224. No options
  3225. First char = 'a'
  3226. Need char = 'b'
  3227. /(?C256)ab/I
  3228. Failed: number after (?C is > 255 at offset 6
  3229. /(?Cab)xx/I
  3230. Failed: closing ) for (?C expected at offset 3
  3231. /(?C12vr)x/I
  3232. Failed: closing ) for (?C expected at offset 5
  3233. /abc(?C)def/I
  3234. Capturing subpattern count = 0
  3235. No options
  3236. First char = 'a'
  3237. Need char = 'f'
  3238. *** Failers
  3239. No match
  3240. \x83\x0\x61bcdef
  3241. --->\x83\x00abcdef
  3242. 0 ^ ^ d
  3243. 0: abcdef
  3244. /(abc)(?C)de(?C1)f/I
  3245. Capturing subpattern count = 1
  3246. No options
  3247. First char = 'a'
  3248. Need char = 'f'
  3249. 123abcdef
  3250. --->123abcdef
  3251. 0 ^ ^ d
  3252. 1 ^ ^ f
  3253. 0: abcdef
  3254. 1: abc
  3255. 123abcdef\C+
  3256. Callout 0: last capture = 1
  3257. 0: <unset>
  3258. 1: abc
  3259. --->123abcdef
  3260. ^ ^ d
  3261. Callout 1: last capture = 1
  3262. 0: <unset>
  3263. 1: abc
  3264. --->123abcdef
  3265. ^ ^ f
  3266. 0: abcdef
  3267. 1: abc
  3268. 123abcdef\C-
  3269. 0: abcdef
  3270. 1: abc
  3271. *** Failers
  3272. No match
  3273. 123abcdef\C!1
  3274. --->123abcdef
  3275. 0 ^ ^ d
  3276. 1 ^ ^ f
  3277. No match
  3278. /(?C0)(abc(?C1))*/I
  3279. Capturing subpattern count = 1
  3280. May match empty string
  3281. No options
  3282. No first char
  3283. No need char
  3284. abcabcabc
  3285. --->abcabcabc
  3286. 0 ^ (abc(?C1))*
  3287. 1 ^ ^ )
  3288. 1 ^ ^ )
  3289. 1 ^ ^ )
  3290. 0: abcabcabc
  3291. 1: abc
  3292. abcabc\C!1!3
  3293. --->abcabc
  3294. 0 ^ (abc(?C1))*
  3295. 1 ^ ^ )
  3296. 1 ^ ^ )
  3297. 0: abcabc
  3298. 1: abc
  3299. *** Failers
  3300. --->*** Failers
  3301. 0 ^ (abc(?C1))*
  3302. 0:
  3303. abcabcabc\C!1!3
  3304. --->abcabcabc
  3305. 0 ^ (abc(?C1))*
  3306. 1 ^ ^ )
  3307. 1 ^ ^ )
  3308. 1 ^ ^ )
  3309. 0: abcabc
  3310. 1: abc
  3311. /(\d{3}(?C))*/I
  3312. Capturing subpattern count = 1
  3313. May match empty string
  3314. No options
  3315. No first char
  3316. No need char
  3317. 123\C+
  3318. Callout 0: last capture = -1
  3319. 0: <unset>
  3320. --->123
  3321. ^ ^ )
  3322. 0: 123
  3323. 1: 123
  3324. 123456\C+
  3325. Callout 0: last capture = -1
  3326. 0: <unset>
  3327. --->123456
  3328. ^ ^ )
  3329. Callout 0: last capture = 1
  3330. 0: <unset>
  3331. 1: 123
  3332. --->123456
  3333. ^ ^ )
  3334. 0: 123456
  3335. 1: 456
  3336. 123456789\C+
  3337. Callout 0: last capture = -1
  3338. 0: <unset>
  3339. --->123456789
  3340. ^ ^ )
  3341. Callout 0: last capture = 1
  3342. 0: <unset>
  3343. 1: 123
  3344. --->123456789
  3345. ^ ^ )
  3346. Callout 0: last capture = 1
  3347. 0: <unset>
  3348. 1: 456
  3349. --->123456789
  3350. ^ ^ )
  3351. 0: 123456789
  3352. 1: 789
  3353. /((xyz)(?C)p|(?C1)xyzabc)/I
  3354. Capturing subpattern count = 2
  3355. No options
  3356. First char = 'x'
  3357. No need char
  3358. xyzabc\C+
  3359. Callout 0: last capture = 2
  3360. 0: <unset>
  3361. 1: <unset>
  3362. 2: xyz
  3363. --->xyzabc
  3364. ^ ^ p
  3365. Callout 1: last capture = -1
  3366. 0: <unset>
  3367. --->xyzabc
  3368. ^ x
  3369. 0: xyzabc
  3370. 1: xyzabc
  3371. /(X)((xyz)(?C)p|(?C1)xyzabc)/I
  3372. Capturing subpattern count = 3
  3373. No options
  3374. First char = 'X'
  3375. Need char = 'x'
  3376. Xxyzabc\C+
  3377. Callout 0: last capture = 3
  3378. 0: <unset>
  3379. 1: X
  3380. 2: <unset>
  3381. 3: xyz
  3382. --->Xxyzabc
  3383. ^ ^ p
  3384. Callout 1: last capture = 1
  3385. 0: <unset>
  3386. 1: X
  3387. --->Xxyzabc
  3388. ^^ x
  3389. 0: Xxyzabc
  3390. 1: X
  3391. 2: xyzabc
  3392. /(?=(abc))(?C)abcdef/I
  3393. Capturing subpattern count = 1
  3394. No options
  3395. First char = 'a'
  3396. Need char = 'f'
  3397. abcdef\C+
  3398. Callout 0: last capture = 1
  3399. 0: <unset>
  3400. 1: abc
  3401. --->abcdef
  3402. ^ a
  3403. 0: abcdef
  3404. 1: abc
  3405. /(?!(abc)(?C1)d)(?C2)abcxyz/I
  3406. Capturing subpattern count = 1
  3407. No options
  3408. First char = 'a'
  3409. Need char = 'z'
  3410. abcxyz\C+
  3411. Callout 1: last capture = 1
  3412. 0: <unset>
  3413. 1: abc
  3414. --->abcxyz
  3415. ^ ^ d
  3416. Callout 2: last capture = -1
  3417. 0: <unset>
  3418. --->abcxyz
  3419. ^ a
  3420. 0: abcxyz
  3421. /(?<=(abc)(?C))xyz/I
  3422. Capturing subpattern count = 1
  3423. Max lookbehind = 3
  3424. No options
  3425. First char = 'x'
  3426. Need char = 'z'
  3427. abcxyz\C+
  3428. Callout 0: last capture = 1
  3429. 0: <unset>
  3430. 1: abc
  3431. --->abcxyz
  3432. ^ )
  3433. 0: xyz
  3434. 1: abc
  3435. /a(b+)(c*)(?C1)/I
  3436. Capturing subpattern count = 2
  3437. No options
  3438. First char = 'a'
  3439. Need char = 'b'
  3440. abbbbbccc\C*1
  3441. --->abbbbbccc
  3442. 1 ^ ^
  3443. Callout data = 1
  3444. No match
  3445. /a(b+?)(c*?)(?C1)/I
  3446. Capturing subpattern count = 2
  3447. No options
  3448. First char = 'a'
  3449. Need char = 'b'
  3450. abbbbbccc\C*1
  3451. --->abbbbbccc
  3452. 1 ^ ^
  3453. Callout data = 1
  3454. 1 ^ ^
  3455. Callout data = 1
  3456. 1 ^ ^
  3457. Callout data = 1
  3458. 1 ^ ^
  3459. Callout data = 1
  3460. 1 ^ ^
  3461. Callout data = 1
  3462. 1 ^ ^
  3463. Callout data = 1
  3464. 1 ^ ^
  3465. Callout data = 1
  3466. 1 ^ ^
  3467. Callout data = 1
  3468. No match
  3469. /(?C)abc/I
  3470. Capturing subpattern count = 0
  3471. No options
  3472. First char = 'a'
  3473. Need char = 'c'
  3474. /(?C)^abc/I
  3475. Capturing subpattern count = 0
  3476. Options: anchored
  3477. No first char
  3478. No need char
  3479. /(?C)a|b/IS
  3480. Capturing subpattern count = 0
  3481. No options
  3482. No first char
  3483. No need char
  3484. Subject length lower bound = 1
  3485. Starting chars: a b
  3486. /(?R)/I
  3487. Failed: recursive call could loop indefinitely at offset 3
  3488. /(a|(?R))/I
  3489. Failed: recursive call could loop indefinitely at offset 6
  3490. /(ab|(bc|(de|(?R))))/I
  3491. Failed: recursive call could loop indefinitely at offset 15
  3492. /x(ab|(bc|(de|(?R))))/I
  3493. Capturing subpattern count = 3
  3494. No options
  3495. First char = 'x'
  3496. No need char
  3497. xab
  3498. 0: xab
  3499. 1: ab
  3500. xbc
  3501. 0: xbc
  3502. 1: bc
  3503. 2: bc
  3504. xde
  3505. 0: xde
  3506. 1: de
  3507. 2: de
  3508. 3: de
  3509. xxab
  3510. 0: xxab
  3511. 1: xab
  3512. 2: xab
  3513. 3: xab
  3514. xxxab
  3515. 0: xxxab
  3516. 1: xxab
  3517. 2: xxab
  3518. 3: xxab
  3519. *** Failers
  3520. No match
  3521. xyab
  3522. No match
  3523. /(ab|(bc|(de|(?1))))/I
  3524. Failed: recursive call could loop indefinitely at offset 15
  3525. /x(ab|(bc|(de|(?1)x)x)x)/I
  3526. Failed: recursive call could loop indefinitely at offset 16
  3527. /^([^()]|\((?1)*\))*$/I
  3528. Capturing subpattern count = 1
  3529. May match empty string
  3530. Options: anchored
  3531. No first char
  3532. No need char
  3533. abc
  3534. 0: abc
  3535. 1: c
  3536. a(b)c
  3537. 0: a(b)c
  3538. 1: c
  3539. a(b(c))d
  3540. 0: a(b(c))d
  3541. 1: d
  3542. *** Failers)
  3543. No match
  3544. a(b(c)d
  3545. No match
  3546. /^>abc>([^()]|\((?1)*\))*<xyz<$/I
  3547. Capturing subpattern count = 1
  3548. Options: anchored
  3549. No first char
  3550. Need char = '<'
  3551. >abc>123<xyz<
  3552. 0: >abc>123<xyz<
  3553. 1: 3
  3554. >abc>1(2)3<xyz<
  3555. 0: >abc>1(2)3<xyz<
  3556. 1: 3
  3557. >abc>(1(2)3)<xyz<
  3558. 0: >abc>(1(2)3)<xyz<
  3559. 1: (1(2)3)
  3560. /(a(?1)b)/DZ
  3561. ------------------------------------------------------------------
  3562. Bra
  3563. CBra 1
  3564. a
  3565. Recurse
  3566. b
  3567. Ket
  3568. Ket
  3569. End
  3570. ------------------------------------------------------------------
  3571. Capturing subpattern count = 1
  3572. No options
  3573. First char = 'a'
  3574. Need char = 'b'
  3575. /(a(?1)+b)/DZ
  3576. ------------------------------------------------------------------
  3577. Bra
  3578. CBra 1
  3579. a
  3580. Once
  3581. Recurse
  3582. KetRmax
  3583. b
  3584. Ket
  3585. Ket
  3586. End
  3587. ------------------------------------------------------------------
  3588. Capturing subpattern count = 1
  3589. No options
  3590. First char = 'a'
  3591. Need char = 'b'
  3592. /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
  3593. Capturing subpattern count = 2
  3594. Options: anchored
  3595. No first char
  3596. No need char
  3597. 12
  3598. 0: 12
  3599. 1: 12
  3600. (((2+2)*-3)-7)
  3601. 0: (((2+2)*-3)-7)
  3602. 1: (((2+2)*-3)-7)
  3603. 2: -
  3604. -12
  3605. 0: -12
  3606. 1: -12
  3607. *** Failers
  3608. No match
  3609. ((2+2)*-3)-7)
  3610. No match
  3611. /^(x(y|(?1){2})z)/I
  3612. Capturing subpattern count = 2
  3613. Options: anchored
  3614. No first char
  3615. No need char
  3616. xyz
  3617. 0: xyz
  3618. 1: xyz
  3619. 2: y
  3620. xxyzxyzz
  3621. 0: xxyzxyzz
  3622. 1: xxyzxyzz
  3623. 2: xyzxyz
  3624. *** Failers
  3625. No match
  3626. xxyzz
  3627. No match
  3628. xxyzxyzxyzz
  3629. No match
  3630. /((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix
  3631. Capturing subpattern count = 2
  3632. Options: extended
  3633. First char = '<'
  3634. Need char = '>'
  3635. <>
  3636. 0: <>
  3637. 1: <>
  3638. 2: <>
  3639. <abcd>
  3640. 0: <abcd>
  3641. 1: <abcd>
  3642. 2: <abcd>
  3643. <abc <123> hij>
  3644. 0: <abc <123> hij>
  3645. 1: <abc <123> hij>
  3646. 2: <abc <123> hij>
  3647. <abc <def> hij>
  3648. 0: <def>
  3649. 1: <def>
  3650. 2: <def>
  3651. <abc<>def>
  3652. 0: <abc<>def>
  3653. 1: <abc<>def>
  3654. 2: <abc<>def>
  3655. <abc<>
  3656. 0: <>
  3657. 1: <>
  3658. 2: <>
  3659. *** Failers
  3660. No match
  3661. <abc
  3662. No match
  3663. /(?1)/I
  3664. Failed: reference to non-existent subpattern at offset 3
  3665. /((?2)(abc)/I
  3666. Failed: missing ) at offset 10
  3667. /^(abc)def(?1)/I
  3668. Capturing subpattern count = 1
  3669. Options: anchored
  3670. No first char
  3671. No need char
  3672. abcdefabc
  3673. 0: abcdefabc
  3674. 1: abc
  3675. /^(a|b|c)=(?1)+/I
  3676. Capturing subpattern count = 1
  3677. Options: anchored
  3678. No first char
  3679. No need char
  3680. a=a
  3681. 0: a=a
  3682. 1: a
  3683. a=b
  3684. 0: a=b
  3685. 1: a
  3686. a=bc
  3687. 0: a=bc
  3688. 1: a
  3689. /^(a|b|c)=((?1))+/I
  3690. Capturing subpattern count = 2
  3691. Options: anchored
  3692. No first char
  3693. No need char
  3694. a=a
  3695. 0: a=a
  3696. 1: a
  3697. 2: a
  3698. a=b
  3699. 0: a=b
  3700. 1: a
  3701. 2: b
  3702. a=bc
  3703. 0: a=bc
  3704. 1: a
  3705. 2: c
  3706. /a(?P<name1>b|c)d(?P<longername2>e)/DZ
  3707. ------------------------------------------------------------------
  3708. Bra
  3709. a
  3710. CBra 1
  3711. b
  3712. Alt
  3713. c
  3714. Ket
  3715. d
  3716. CBra 2
  3717. e
  3718. Ket
  3719. Ket
  3720. End
  3721. ------------------------------------------------------------------
  3722. Capturing subpattern count = 2
  3723. Named capturing subpatterns:
  3724. longername2 2
  3725. name1 1
  3726. No options
  3727. First char = 'a'
  3728. Need char = 'e'
  3729. abde
  3730. 0: abde
  3731. 1: b
  3732. 2: e
  3733. acde
  3734. 0: acde
  3735. 1: c
  3736. 2: e
  3737. /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
  3738. ------------------------------------------------------------------
  3739. Bra
  3740. Bra
  3741. a
  3742. CBra 1
  3743. c
  3744. CBra 2
  3745. d
  3746. Ket
  3747. Ket
  3748. Ket
  3749. CBra 3
  3750. a
  3751. Ket
  3752. Ket
  3753. End
  3754. ------------------------------------------------------------------
  3755. Capturing subpattern count = 3
  3756. Named capturing subpatterns:
  3757. a 3
  3758. c 1
  3759. d 2
  3760. No options
  3761. First char = 'a'
  3762. Need char = 'a'
  3763. /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
  3764. ------------------------------------------------------------------
  3765. Bra
  3766. CBra 1
  3767. a
  3768. Ket
  3769. Any
  3770. Any
  3771. Any
  3772. \1
  3773. bbb
  3774. Recurse
  3775. d
  3776. Ket
  3777. End
  3778. ------------------------------------------------------------------
  3779. Capturing subpattern count = 1
  3780. Max back reference = 1
  3781. Named capturing subpatterns:
  3782. a 1
  3783. No options
  3784. First char = 'a'
  3785. Need char = 'd'
  3786. /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
  3787. Capturing subpattern count = 4
  3788. Max back reference = 4
  3789. Named capturing subpatterns:
  3790. four 4
  3791. one 1
  3792. three 3
  3793. two 2
  3794. May match empty string
  3795. Options: anchored caseless
  3796. No first char
  3797. No need char
  3798. 1221
  3799. 0: 1221
  3800. 1: 1221
  3801. 2: 1
  3802. Satan, oscillate my metallic sonatas!
  3803. 0: Satan, oscillate my metallic sonatas!
  3804. 1: <unset>
  3805. 2: <unset>
  3806. 3: Satan, oscillate my metallic sonatas
  3807. 4: S
  3808. A man, a plan, a canal: Panama!
  3809. 0: A man, a plan, a canal: Panama!
  3810. 1: <unset>
  3811. 2: <unset>
  3812. 3: A man, a plan, a canal: Panama
  3813. 4: A
  3814. Able was I ere I saw Elba.
  3815. 0: Able was I ere I saw Elba.
  3816. 1: <unset>
  3817. 2: <unset>
  3818. 3: Able was I ere I saw Elba
  3819. 4: A
  3820. *** Failers
  3821. No match
  3822. The quick brown fox
  3823. No match
  3824. /((?(R)a|b))\1(?1)?/I
  3825. Capturing subpattern count = 1
  3826. Max back reference = 1
  3827. No options
  3828. No first char
  3829. No need char
  3830. bb
  3831. 0: bb
  3832. 1: b
  3833. bbaa
  3834. 0: bba
  3835. 1: b
  3836. /(.*)a/Is
  3837. Capturing subpattern count = 1
  3838. Options: anchored dotall
  3839. No first char
  3840. Need char = 'a'
  3841. /(.*)a\1/Is
  3842. Capturing subpattern count = 1
  3843. Max back reference = 1
  3844. Options: dotall
  3845. No first char
  3846. Need char = 'a'
  3847. /(.*)a(b)\2/Is
  3848. Capturing subpattern count = 2
  3849. Max back reference = 2
  3850. Options: anchored dotall
  3851. No first char
  3852. Need char = 'b'
  3853. /((.*)a|(.*)b)z/Is
  3854. Capturing subpattern count = 3
  3855. Options: anchored dotall
  3856. No first char
  3857. Need char = 'z'
  3858. /((.*)a|(.*)b)z\1/Is
  3859. Capturing subpattern count = 3
  3860. Max back reference = 1
  3861. Options: dotall
  3862. No first char
  3863. Need char = 'z'
  3864. /((.*)a|(.*)b)z\2/Is
  3865. Capturing subpattern count = 3
  3866. Max back reference = 2
  3867. Options: dotall
  3868. No first char
  3869. Need char = 'z'
  3870. /((.*)a|(.*)b)z\3/Is
  3871. Capturing subpattern count = 3
  3872. Max back reference = 3
  3873. Options: dotall
  3874. No first char
  3875. Need char = 'z'
  3876. /((.*)a|^(.*)b)z\3/Is
  3877. Capturing subpattern count = 3
  3878. Max back reference = 3
  3879. Options: anchored dotall
  3880. No first char
  3881. Need char = 'z'
  3882. /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
  3883. Capturing subpattern count = 31
  3884. May match empty string
  3885. Options: anchored dotall
  3886. No first char
  3887. No need char
  3888. /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
  3889. Capturing subpattern count = 31
  3890. Max back reference = 31
  3891. May match empty string
  3892. Options: dotall
  3893. No first char
  3894. No need char
  3895. /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
  3896. Capturing subpattern count = 32
  3897. Max back reference = 32
  3898. May match empty string
  3899. Options: dotall
  3900. No first char
  3901. No need char
  3902. /(a)(bc)/INDZ
  3903. ------------------------------------------------------------------
  3904. Bra
  3905. Bra
  3906. a
  3907. Ket
  3908. Bra
  3909. bc
  3910. Ket
  3911. Ket
  3912. End
  3913. ------------------------------------------------------------------
  3914. Capturing subpattern count = 0
  3915. Options: no_auto_capture
  3916. First char = 'a'
  3917. Need char = 'c'
  3918. abc
  3919. 0: abc
  3920. /(?P<one>a)(bc)/INDZ
  3921. ------------------------------------------------------------------
  3922. Bra
  3923. CBra 1
  3924. a
  3925. Ket
  3926. Bra
  3927. bc
  3928. Ket
  3929. Ket
  3930. End
  3931. ------------------------------------------------------------------
  3932. Capturing subpattern count = 1
  3933. Named capturing subpatterns:
  3934. one 1
  3935. Options: no_auto_capture
  3936. First char = 'a'
  3937. Need char = 'c'
  3938. abc
  3939. 0: abc
  3940. 1: a
  3941. /(a)(?P<named>bc)/INDZ
  3942. ------------------------------------------------------------------
  3943. Bra
  3944. Bra
  3945. a
  3946. Ket
  3947. CBra 1
  3948. bc
  3949. Ket
  3950. Ket
  3951. End
  3952. ------------------------------------------------------------------
  3953. Capturing subpattern count = 1
  3954. Named capturing subpatterns:
  3955. named 1
  3956. Options: no_auto_capture
  3957. First char = 'a'
  3958. Need char = 'c'
  3959. /(a+)*zz/I
  3960. Capturing subpattern count = 1
  3961. No options
  3962. No first char
  3963. Need char = 'z'
  3964. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
  3965. Minimum match() limit = 8
  3966. Minimum match() recursion limit = 6
  3967. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
  3968. 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  3969. aaaaaaaaaaaaaz\M
  3970. Minimum match() limit = 32768
  3971. Minimum match() recursion limit = 29
  3972. No match
  3973. /(aaa(?C1)bbb|ab)/I
  3974. Capturing subpattern count = 1
  3975. No options
  3976. First char = 'a'
  3977. Need char = 'b'
  3978. aaabbb
  3979. --->aaabbb
  3980. 1 ^ ^ b
  3981. 0: aaabbb
  3982. 1: aaabbb
  3983. aaabbb\C*0
  3984. --->aaabbb
  3985. 1 ^ ^ b
  3986. 0: aaabbb
  3987. 1: aaabbb
  3988. aaabbb\C*1
  3989. --->aaabbb
  3990. 1 ^ ^ b
  3991. Callout data = 1
  3992. 0: ab
  3993. 1: ab
  3994. aaabbb\C*-1
  3995. --->aaabbb
  3996. 1 ^ ^ b
  3997. Callout data = -1
  3998. No match
  3999. /ab(?P<one>cd)ef(?P<two>gh)/I
  4000. Capturing subpattern count = 2
  4001. Named capturing subpatterns:
  4002. one 1
  4003. two 2
  4004. No options
  4005. First char = 'a'
  4006. Need char = 'h'
  4007. abcdefgh
  4008. 0: abcdefgh
  4009. 1: cd
  4010. 2: gh
  4011. abcdefgh\C1\Gtwo
  4012. 0: abcdefgh
  4013. 1: cd
  4014. 2: gh
  4015. 1C cd (2)
  4016. G gh (2) two
  4017. abcdefgh\Cone\Ctwo
  4018. 0: abcdefgh
  4019. 1: cd
  4020. 2: gh
  4021. C cd (2) one
  4022. C gh (2) two
  4023. abcdefgh\Cthree
  4024. no parentheses with name "three"
  4025. 0: abcdefgh
  4026. 1: cd
  4027. 2: gh
  4028. copy substring three failed -7
  4029. /(?P<Tes>)(?P<Test>)/DZ
  4030. ------------------------------------------------------------------
  4031. Bra
  4032. CBra 1
  4033. Ket
  4034. CBra 2
  4035. Ket
  4036. Ket
  4037. End
  4038. ------------------------------------------------------------------
  4039. Capturing subpattern count = 2
  4040. Named capturing subpatterns:
  4041. Tes 1
  4042. Test 2
  4043. May match empty string
  4044. No options
  4045. No first char
  4046. No need char
  4047. /(?P<Test>)(?P<Tes>)/DZ
  4048. ------------------------------------------------------------------
  4049. Bra
  4050. CBra 1
  4051. Ket
  4052. CBra 2
  4053. Ket
  4054. Ket
  4055. End
  4056. ------------------------------------------------------------------
  4057. Capturing subpattern count = 2
  4058. Named capturing subpatterns:
  4059. Tes 2
  4060. Test 1
  4061. May match empty string
  4062. No options
  4063. No first char
  4064. No need char
  4065. /(?P<Z>zz)(?P<A>aa)/I
  4066. Capturing subpattern count = 2
  4067. Named capturing subpatterns:
  4068. A 2
  4069. Z 1
  4070. No options
  4071. First char = 'z'
  4072. Need char = 'a'
  4073. zzaa\CZ
  4074. 0: zzaa
  4075. 1: zz
  4076. 2: aa
  4077. C zz (2) Z
  4078. zzaa\CA
  4079. 0: zzaa
  4080. 1: zz
  4081. 2: aa
  4082. C aa (2) A
  4083. /(?P<x>eks)(?P<x>eccs)/I
  4084. Failed: two named subpatterns have the same name at offset 15
  4085. /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
  4086. Failed: two named subpatterns have the same name at offset 30
  4087. "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
  4088. Capturing subpattern count = 3
  4089. Named capturing subpatterns:
  4090. elem 2
  4091. No options
  4092. First char = '['
  4093. Need char = ']'
  4094. [10,20,30,5,5,4,4,2,43,23,4234]
  4095. 0: [10,20,30,5,5,4,4,2,43,23,4234]
  4096. 1: 10,20,30,5,5,4,4,2,43,23,4234
  4097. 2: 10
  4098. 3: ,4234
  4099. *** Failers
  4100. No match
  4101. []
  4102. No match
  4103. "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
  4104. Capturing subpattern count = 3
  4105. Named capturing subpatterns:
  4106. elem 2
  4107. No options
  4108. First char = '['
  4109. Need char = ']'
  4110. [10,20,30,5,5,4,4,2,43,23,4234]
  4111. 0: [10,20,30,5,5,4,4,2,43,23,4234]
  4112. 1: 10,20,30,5,5,4,4,2,43,23,4234
  4113. 2: 10
  4114. 3: ,4234
  4115. []
  4116. 0: []
  4117. /(a(b(?2)c))?/DZ
  4118. ------------------------------------------------------------------
  4119. Bra
  4120. Brazero
  4121. CBra 1
  4122. a
  4123. CBra 2
  4124. b
  4125. Recurse
  4126. c
  4127. Ket
  4128. Ket
  4129. Ket
  4130. End
  4131. ------------------------------------------------------------------
  4132. Capturing subpattern count = 2
  4133. May match empty string
  4134. No options
  4135. No first char
  4136. No need char
  4137. /(a(b(?2)c))*/DZ
  4138. ------------------------------------------------------------------
  4139. Bra
  4140. Brazero
  4141. CBra 1
  4142. a
  4143. CBra 2
  4144. b
  4145. Recurse
  4146. c
  4147. Ket
  4148. KetRmax
  4149. Ket
  4150. End
  4151. ------------------------------------------------------------------
  4152. Capturing subpattern count = 2
  4153. May match empty string
  4154. No options
  4155. No first char
  4156. No need char
  4157. /(a(b(?2)c)){0,2}/DZ
  4158. ------------------------------------------------------------------
  4159. Bra
  4160. Brazero
  4161. Bra
  4162. CBra 1
  4163. a
  4164. CBra 2
  4165. b
  4166. Recurse
  4167. c
  4168. Ket
  4169. Ket
  4170. Brazero
  4171. CBra 1
  4172. a
  4173. CBra 2
  4174. b
  4175. Recurse
  4176. c
  4177. Ket
  4178. Ket
  4179. Ket
  4180. Ket
  4181. End
  4182. ------------------------------------------------------------------
  4183. Capturing subpattern count = 2
  4184. May match empty string
  4185. No options
  4186. No first char
  4187. No need char
  4188. /[ab]{1}+/DZ
  4189. ------------------------------------------------------------------
  4190. Bra
  4191. [ab]{1,1}+
  4192. Ket
  4193. End
  4194. ------------------------------------------------------------------
  4195. Capturing subpattern count = 0
  4196. No options
  4197. No first char
  4198. No need char
  4199. /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
  4200. Capturing subpattern count = 3
  4201. Options: caseless
  4202. No first char
  4203. Need char = 'g' (caseless)
  4204. Baby Bjorn Active Carrier - With free SHIPPING!!
  4205. 0: Baby Bjorn Active Carrier - With free SHIPPING!!
  4206. 1: Baby Bjorn Active Carrier - With free SHIPPING!!
  4207. /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
  4208. Capturing subpattern count = 3
  4209. Options: caseless
  4210. No first char
  4211. Need char = 'g' (caseless)
  4212. Subject length lower bound = 8
  4213. No starting char list
  4214. Baby Bjorn Active Carrier - With free SHIPPING!!
  4215. 0: Baby Bjorn Active Carrier - With free SHIPPING!!
  4216. 1: Baby Bjorn Active Carrier - With free SHIPPING!!
  4217. /a*.*b/ISDZ
  4218. ------------------------------------------------------------------
  4219. Bra
  4220. a*
  4221. Any*
  4222. b
  4223. Ket
  4224. End
  4225. ------------------------------------------------------------------
  4226. Capturing subpattern count = 0
  4227. No options
  4228. No first char
  4229. Need char = 'b'
  4230. Subject length lower bound = 1
  4231. No starting char list
  4232. /(a|b)*.?c/ISDZ
  4233. ------------------------------------------------------------------
  4234. Bra
  4235. Brazero
  4236. CBra 1
  4237. a
  4238. Alt
  4239. b
  4240. KetRmax
  4241. Any?
  4242. c
  4243. Ket
  4244. End
  4245. ------------------------------------------------------------------
  4246. Capturing subpattern count = 1
  4247. No options
  4248. No first char
  4249. Need char = 'c'
  4250. Subject length lower bound = 1
  4251. No starting char list
  4252. /abc(?C255)de(?C)f/DZ
  4253. ------------------------------------------------------------------
  4254. Bra
  4255. abc
  4256. Callout 255 10 1
  4257. de
  4258. Callout 0 16 1
  4259. f
  4260. Ket
  4261. End
  4262. ------------------------------------------------------------------
  4263. Capturing subpattern count = 0
  4264. No options
  4265. First char = 'a'
  4266. Need char = 'f'
  4267. /abcde/ICDZ
  4268. ------------------------------------------------------------------
  4269. Bra
  4270. Callout 255 0 1
  4271. a
  4272. Callout 255 1 1
  4273. b
  4274. Callout 255 2 1
  4275. c
  4276. Callout 255 3 1
  4277. d
  4278. Callout 255 4 1
  4279. e
  4280. Callout 255 5 0
  4281. Ket
  4282. End
  4283. ------------------------------------------------------------------
  4284. Capturing subpattern count = 0
  4285. Options:
  4286. First char = 'a'
  4287. Need char = 'e'
  4288. abcde
  4289. --->abcde
  4290. +0 ^ a
  4291. +1 ^^ b
  4292. +2 ^ ^ c
  4293. +3 ^ ^ d
  4294. +4 ^ ^ e
  4295. +5 ^ ^
  4296. 0: abcde
  4297. abcdfe
  4298. --->abcdfe
  4299. +0 ^ a
  4300. +1 ^^ b
  4301. +2 ^ ^ c
  4302. +3 ^ ^ d
  4303. +4 ^ ^ e
  4304. No match
  4305. /a*b/ICDZS
  4306. ------------------------------------------------------------------
  4307. Bra
  4308. Callout 255 0 2
  4309. a*+
  4310. Callout 255 2 1
  4311. b
  4312. Callout 255 3 0
  4313. Ket
  4314. End
  4315. ------------------------------------------------------------------
  4316. Capturing subpattern count = 0
  4317. Options:
  4318. No first char
  4319. Need char = 'b'
  4320. Subject length lower bound = 1
  4321. Starting chars: a b
  4322. ab
  4323. --->ab
  4324. +0 ^ a*
  4325. +2 ^^ b
  4326. +3 ^ ^
  4327. 0: ab
  4328. aaaab
  4329. --->aaaab
  4330. +0 ^ a*
  4331. +2 ^ ^ b
  4332. +3 ^ ^
  4333. 0: aaaab
  4334. aaaacb
  4335. --->aaaacb
  4336. +0 ^ a*
  4337. +2 ^ ^ b
  4338. +0 ^ a*
  4339. +2 ^ ^ b
  4340. +0 ^ a*
  4341. +2 ^ ^ b
  4342. +0 ^ a*
  4343. +2 ^^ b
  4344. +0 ^ a*
  4345. +2 ^ b
  4346. +3 ^^
  4347. 0: b
  4348. /a*b/ICDZSS
  4349. ------------------------------------------------------------------
  4350. Bra
  4351. Callout 255 0 2
  4352. a*+
  4353. Callout 255 2 1
  4354. b
  4355. Callout 255 3 0
  4356. Ket
  4357. End
  4358. ------------------------------------------------------------------
  4359. Capturing subpattern count = 0
  4360. Options:
  4361. No first char
  4362. Need char = 'b'
  4363. ab
  4364. --->ab
  4365. +0 ^ a*
  4366. +2 ^^ b
  4367. +3 ^ ^
  4368. 0: ab
  4369. aaaab
  4370. --->aaaab
  4371. +0 ^ a*
  4372. +2 ^ ^ b
  4373. +3 ^ ^
  4374. 0: aaaab
  4375. aaaacb
  4376. --->aaaacb
  4377. +0 ^ a*
  4378. +2 ^ ^ b
  4379. +0 ^ a*
  4380. +2 ^ ^ b
  4381. +0 ^ a*
  4382. +2 ^ ^ b
  4383. +0 ^ a*
  4384. +2 ^^ b
  4385. +0 ^ a*
  4386. +2 ^ b
  4387. +0 ^ a*
  4388. +2 ^ b
  4389. +3 ^^
  4390. 0: b
  4391. /a+b/ICDZ
  4392. ------------------------------------------------------------------
  4393. Bra
  4394. Callout 255 0 2
  4395. a++
  4396. Callout 255 2 1
  4397. b
  4398. Callout 255 3 0
  4399. Ket
  4400. End
  4401. ------------------------------------------------------------------
  4402. Capturing subpattern count = 0
  4403. Options:
  4404. First char = 'a'
  4405. Need char = 'b'
  4406. ab
  4407. --->ab
  4408. +0 ^ a+
  4409. +2 ^^ b
  4410. +3 ^ ^
  4411. 0: ab
  4412. aaaab
  4413. --->aaaab
  4414. +0 ^ a+
  4415. +2 ^ ^ b
  4416. +3 ^ ^
  4417. 0: aaaab
  4418. aaaacb
  4419. --->aaaacb
  4420. +0 ^ a+
  4421. +2 ^ ^ b
  4422. +0 ^ a+
  4423. +2 ^ ^ b
  4424. +0 ^ a+
  4425. +2 ^ ^ b
  4426. +0 ^ a+
  4427. +2 ^^ b
  4428. No match
  4429. /(abc|def)x/ICDZS
  4430. ------------------------------------------------------------------
  4431. Bra
  4432. Callout 255 0 9
  4433. CBra 1
  4434. Callout 255 1 1
  4435. a
  4436. Callout 255 2 1
  4437. b
  4438. Callout 255 3 1
  4439. c
  4440. Callout 255 4 0
  4441. Alt
  4442. Callout 255 5 1
  4443. d
  4444. Callout 255 6 1
  4445. e
  4446. Callout 255 7 1
  4447. f
  4448. Callout 255 8 0
  4449. Ket
  4450. Callout 255 9 1
  4451. x
  4452. Callout 255 10 0
  4453. Ket
  4454. End
  4455. ------------------------------------------------------------------
  4456. Capturing subpattern count = 1
  4457. Options:
  4458. No first char
  4459. Need char = 'x'
  4460. Subject length lower bound = 4
  4461. Starting chars: a d
  4462. abcx
  4463. --->abcx
  4464. +0 ^ (abc|def)
  4465. +1 ^ a
  4466. +2 ^^ b
  4467. +3 ^ ^ c
  4468. +4 ^ ^ |
  4469. +9 ^ ^ x
  4470. +10 ^ ^
  4471. 0: abcx
  4472. 1: abc
  4473. defx
  4474. --->defx
  4475. +0 ^ (abc|def)
  4476. +1 ^ a
  4477. +5 ^ d
  4478. +6 ^^ e
  4479. +7 ^ ^ f
  4480. +8 ^ ^ )
  4481. +9 ^ ^ x
  4482. +10 ^ ^
  4483. 0: defx
  4484. 1: def
  4485. ** Failers
  4486. No match
  4487. abcdefzx
  4488. --->abcdefzx
  4489. +0 ^ (abc|def)
  4490. +1 ^ a
  4491. +2 ^^ b
  4492. +3 ^ ^ c
  4493. +4 ^ ^ |
  4494. +9 ^ ^ x
  4495. +5 ^ d
  4496. +0 ^ (abc|def)
  4497. +1 ^ a
  4498. +5 ^ d
  4499. +6 ^^ e
  4500. +7 ^ ^ f
  4501. +8 ^ ^ )
  4502. +9 ^ ^ x
  4503. No match
  4504. /(abc|def)x/ICDZSS
  4505. ------------------------------------------------------------------
  4506. Bra
  4507. Callout 255 0 9
  4508. CBra 1
  4509. Callout 255 1 1
  4510. a
  4511. Callout 255 2 1
  4512. b
  4513. Callout 255 3 1
  4514. c
  4515. Callout 255 4 0
  4516. Alt
  4517. Callout 255 5 1
  4518. d
  4519. Callout 255 6 1
  4520. e
  4521. Callout 255 7 1
  4522. f
  4523. Callout 255 8 0
  4524. Ket
  4525. Callout 255 9 1
  4526. x
  4527. Callout 255 10 0
  4528. Ket
  4529. End
  4530. ------------------------------------------------------------------
  4531. Capturing subpattern count = 1
  4532. Options:
  4533. No first char
  4534. Need char = 'x'
  4535. abcx
  4536. --->abcx
  4537. +0 ^ (abc|def)
  4538. +1 ^ a
  4539. +2 ^^ b
  4540. +3 ^ ^ c
  4541. +4 ^ ^ |
  4542. +9 ^ ^ x
  4543. +10 ^ ^
  4544. 0: abcx
  4545. 1: abc
  4546. defx
  4547. --->defx
  4548. +0 ^ (abc|def)
  4549. +1 ^ a
  4550. +5 ^ d
  4551. +6 ^^ e
  4552. +7 ^ ^ f
  4553. +8 ^ ^ )
  4554. +9 ^ ^ x
  4555. +10 ^ ^
  4556. 0: defx
  4557. 1: def
  4558. ** Failers
  4559. No match
  4560. abcdefzx
  4561. --->abcdefzx
  4562. +0 ^ (abc|def)
  4563. +1 ^ a
  4564. +2 ^^ b
  4565. +3 ^ ^ c
  4566. +4 ^ ^ |
  4567. +9 ^ ^ x
  4568. +5 ^ d
  4569. +0 ^ (abc|def)
  4570. +1 ^ a
  4571. +5 ^ d
  4572. +0 ^ (abc|def)
  4573. +1 ^ a
  4574. +5 ^ d
  4575. +0 ^ (abc|def)
  4576. +1 ^ a
  4577. +5 ^ d
  4578. +6 ^^ e
  4579. +7 ^ ^ f
  4580. +8 ^ ^ )
  4581. +9 ^ ^ x
  4582. +0 ^ (abc|def)
  4583. +1 ^ a
  4584. +5 ^ d
  4585. +0 ^ (abc|def)
  4586. +1 ^ a
  4587. +5 ^ d
  4588. +0 ^ (abc|def)
  4589. +1 ^ a
  4590. +5 ^ d
  4591. +0 ^ (abc|def)
  4592. +1 ^ a
  4593. +5 ^ d
  4594. No match
  4595. /(ab|cd){3,4}/IC
  4596. Capturing subpattern count = 1
  4597. Options:
  4598. No first char
  4599. No need char
  4600. ababab
  4601. --->ababab
  4602. +0 ^ (ab|cd){3,4}
  4603. +1 ^ a
  4604. +2 ^^ b
  4605. +3 ^ ^ |
  4606. +1 ^ ^ a
  4607. +2 ^ ^ b
  4608. +3 ^ ^ |
  4609. +1 ^ ^ a
  4610. +2 ^ ^ b
  4611. +3 ^ ^ |
  4612. +1 ^ ^ a
  4613. +4 ^ ^ c
  4614. +12 ^ ^
  4615. 0: ababab
  4616. 1: ab
  4617. abcdabcd
  4618. --->abcdabcd
  4619. +0 ^ (ab|cd){3,4}
  4620. +1 ^ a
  4621. +2 ^^ b
  4622. +3 ^ ^ |
  4623. +1 ^ ^ a
  4624. +4 ^ ^ c
  4625. +5 ^ ^ d
  4626. +6 ^ ^ )
  4627. +1 ^ ^ a
  4628. +2 ^ ^ b
  4629. +3 ^ ^ |
  4630. +1 ^ ^ a
  4631. +4 ^ ^ c
  4632. +5 ^ ^ d
  4633. +6 ^ ^ )
  4634. +12 ^ ^
  4635. 0: abcdabcd
  4636. 1: cd
  4637. abcdcdcdcdcd
  4638. --->abcdcdcdcdcd
  4639. +0 ^ (ab|cd){3,4}
  4640. +1 ^ a
  4641. +2 ^^ b
  4642. +3 ^ ^ |
  4643. +1 ^ ^ a
  4644. +4 ^ ^ c
  4645. +5 ^ ^ d
  4646. +6 ^ ^ )
  4647. +1 ^ ^ a
  4648. +4 ^ ^ c
  4649. +5 ^ ^ d
  4650. +6 ^ ^ )
  4651. +1 ^ ^ a
  4652. +4 ^ ^ c
  4653. +5 ^ ^ d
  4654. +6 ^ ^ )
  4655. +12 ^ ^
  4656. 0: abcdcdcd
  4657. 1: cd
  4658. /([ab]{,4}c|xy)/ICDZS
  4659. ------------------------------------------------------------------
  4660. Bra
  4661. Callout 255 0 14
  4662. CBra 1
  4663. Callout 255 1 4
  4664. [ab]
  4665. Callout 255 5 1
  4666. {
  4667. Callout 255 6 1
  4668. ,
  4669. Callout 255 7 1
  4670. 4
  4671. Callout 255 8 1
  4672. }
  4673. Callout 255 9 1
  4674. c
  4675. Callout 255 10 0
  4676. Alt
  4677. Callout 255 11 1
  4678. x
  4679. Callout 255 12 1
  4680. y
  4681. Callout 255 13 0
  4682. Ket
  4683. Callout 255 14 0
  4684. Ket
  4685. End
  4686. ------------------------------------------------------------------
  4687. Capturing subpattern count = 1
  4688. Options:
  4689. No first char
  4690. No need char
  4691. Subject length lower bound = 2
  4692. Starting chars: a b x
  4693. Note: that { does NOT introduce a quantifier
  4694. --->Note: that { does NOT introduce a quantifier
  4695. +0 ^ ([ab]{,4}c|xy)
  4696. +1 ^ [ab]
  4697. +5 ^^ {
  4698. +11 ^ x
  4699. +0 ^ ([ab]{,4}c|xy)
  4700. +1 ^ [ab]
  4701. +5 ^^ {
  4702. +11 ^ x
  4703. +0 ^ ([ab]{,4}c|xy)
  4704. +1 ^ [ab]
  4705. +5 ^^ {
  4706. +11 ^ x
  4707. No match
  4708. /([ab]{,4}c|xy)/ICDZSS
  4709. ------------------------------------------------------------------
  4710. Bra
  4711. Callout 255 0 14
  4712. CBra 1
  4713. Callout 255 1 4
  4714. [ab]
  4715. Callout 255 5 1
  4716. {
  4717. Callout 255 6 1
  4718. ,
  4719. Callout 255 7 1
  4720. 4
  4721. Callout 255 8 1
  4722. }
  4723. Callout 255 9 1
  4724. c
  4725. Callout 255 10 0
  4726. Alt
  4727. Callout 255 11 1
  4728. x
  4729. Callout 255 12 1
  4730. y
  4731. Callout 255 13 0
  4732. Ket
  4733. Callout 255 14 0
  4734. Ket
  4735. End
  4736. ------------------------------------------------------------------
  4737. Capturing subpattern count = 1
  4738. Options:
  4739. No first char
  4740. No need char
  4741. Note: that { does NOT introduce a quantifier
  4742. --->Note: that { does NOT introduce a quantifier
  4743. +0 ^ ([ab]{,4}c|xy)
  4744. +1 ^ [ab]
  4745. +11 ^ x
  4746. +0 ^ ([ab]{,4}c|xy)
  4747. +1 ^ [ab]
  4748. +11 ^ x
  4749. +0 ^ ([ab]{,4}c|xy)
  4750. +1 ^ [ab]
  4751. +11 ^ x
  4752. +0 ^ ([ab]{,4}c|xy)
  4753. +1 ^ [ab]
  4754. +11 ^ x
  4755. +0 ^ ([ab]{,4}c|xy)
  4756. +1 ^ [ab]
  4757. +11 ^ x
  4758. +0 ^ ([ab]{,4}c|xy)
  4759. +1 ^ [ab]
  4760. +11 ^ x
  4761. +0 ^ ([ab]{,4}c|xy)
  4762. +1 ^ [ab]
  4763. +11 ^ x
  4764. +0 ^ ([ab]{,4}c|xy)
  4765. +1 ^ [ab]
  4766. +11 ^ x
  4767. +0 ^ ([ab]{,4}c|xy)
  4768. +1 ^ [ab]
  4769. +5 ^^ {
  4770. +11 ^ x
  4771. +0 ^ ([ab]{,4}c|xy)
  4772. +1 ^ [ab]
  4773. +11 ^ x
  4774. +0 ^ ([ab]{,4}c|xy)
  4775. +1 ^ [ab]
  4776. +11 ^ x
  4777. +0 ^ ([ab]{,4}c|xy)
  4778. +1 ^ [ab]
  4779. +11 ^ x
  4780. +0 ^ ([ab]{,4}c|xy)
  4781. +1 ^ [ab]
  4782. +11 ^ x
  4783. +0 ^ ([ab]{,4}c|xy)
  4784. +1 ^ [ab]
  4785. +11 ^ x
  4786. +0 ^ ([ab]{,4}c|xy)
  4787. +1 ^ [ab]
  4788. +11 ^ x
  4789. +0 ^ ([ab]{,4}c|xy)
  4790. +1 ^ [ab]
  4791. +11 ^ x
  4792. +0 ^ ([ab]{,4}c|xy)
  4793. +1 ^ [ab]
  4794. +11 ^ x
  4795. +0 ^ ([ab]{,4}c|xy)
  4796. +1 ^ [ab]
  4797. +11 ^ x
  4798. +0 ^ ([ab]{,4}c|xy)
  4799. +1 ^ [ab]
  4800. +11 ^ x
  4801. +0 ^ ([ab]{,4}c|xy)
  4802. +1 ^ [ab]
  4803. +11 ^ x
  4804. +0 ^ ([ab]{,4}c|xy)
  4805. +1 ^ [ab]
  4806. +11 ^ x
  4807. +0 ^ ([ab]{,4}c|xy)
  4808. +1 ^ [ab]
  4809. +11 ^ x
  4810. +0 ^ ([ab]{,4}c|xy)
  4811. +1 ^ [ab]
  4812. +11 ^ x
  4813. +0 ^ ([ab]{,4}c|xy)
  4814. +1 ^ [ab]
  4815. +11 ^ x
  4816. +0 ^ ([ab]{,4}c|xy)
  4817. +1 ^ [ab]
  4818. +11 ^ x
  4819. +0 ^ ([ab]{,4}c|xy)
  4820. +1 ^ [ab]
  4821. +11 ^ x
  4822. +0 ^ ([ab]{,4}c|xy)
  4823. +1 ^ [ab]
  4824. +11 ^ x
  4825. +0 ^ ([ab]{,4}c|xy)
  4826. +1 ^ [ab]
  4827. +11 ^ x
  4828. +0 ^ ([ab]{,4}c|xy)
  4829. +1 ^ [ab]
  4830. +11 ^ x
  4831. +0 ^ ([ab]{,4}c|xy)
  4832. +1 ^ [ab]
  4833. +11 ^ x
  4834. +0 ^ ([ab]{,4}c|xy)
  4835. +1 ^ [ab]
  4836. +11 ^ x
  4837. +0 ^ ([ab]{,4}c|xy)
  4838. +1 ^ [ab]
  4839. +11 ^ x
  4840. +0 ^ ([ab]{,4}c|xy)
  4841. +1 ^ [ab]
  4842. +5 ^^ {
  4843. +11 ^ x
  4844. +0 ^ ([ab]{,4}c|xy)
  4845. +1 ^ [ab]
  4846. +11 ^ x
  4847. +0 ^ ([ab]{,4}c|xy)
  4848. +1 ^ [ab]
  4849. +11 ^ x
  4850. +0 ^ ([ab]{,4}c|xy)
  4851. +1 ^ [ab]
  4852. +11 ^ x
  4853. +0 ^ ([ab]{,4}c|xy)
  4854. +1 ^ [ab]
  4855. +5 ^^ {
  4856. +11 ^ x
  4857. +0 ^ ([ab]{,4}c|xy)
  4858. +1 ^ [ab]
  4859. +11 ^ x
  4860. +0 ^ ([ab]{,4}c|xy)
  4861. +1 ^ [ab]
  4862. +11 ^ x
  4863. +0 ^ ([ab]{,4}c|xy)
  4864. +1 ^ [ab]
  4865. +11 ^ x
  4866. +0 ^ ([ab]{,4}c|xy)
  4867. +1 ^ [ab]
  4868. +11 ^ x
  4869. +0 ^ ([ab]{,4}c|xy)
  4870. +1 ^ [ab]
  4871. +11 ^ x
  4872. +0 ^ ([ab]{,4}c|xy)
  4873. +1 ^ [ab]
  4874. +11 ^ x
  4875. +0 ^ ([ab]{,4}c|xy)
  4876. +1 ^ [ab]
  4877. +11 ^ x
  4878. +0 ^ ([ab]{,4}c|xy)
  4879. +1 ^ [ab]
  4880. +11 ^ x
  4881. No match
  4882. /([ab]{1,4}c|xy){4,5}?123/ICDZ
  4883. ------------------------------------------------------------------
  4884. Bra
  4885. Callout 255 0 21
  4886. CBra 1
  4887. Callout 255 1 9
  4888. [ab]{1,4}+
  4889. Callout 255 10 1
  4890. c
  4891. Callout 255 11 0
  4892. Alt
  4893. Callout 255 12 1
  4894. x
  4895. Callout 255 13 1
  4896. y
  4897. Callout 255 14 0
  4898. Ket
  4899. CBra 1
  4900. Callout 255 1 9
  4901. [ab]{1,4}+
  4902. Callout 255 10 1
  4903. c
  4904. Callout 255 11 0
  4905. Alt
  4906. Callout 255 12 1
  4907. x
  4908. Callout 255 13 1
  4909. y
  4910. Callout 255 14 0
  4911. Ket
  4912. CBra 1
  4913. Callout 255 1 9
  4914. [ab]{1,4}+
  4915. Callout 255 10 1
  4916. c
  4917. Callout 255 11 0
  4918. Alt
  4919. Callout 255 12 1
  4920. x
  4921. Callout 255 13 1
  4922. y
  4923. Callout 255 14 0
  4924. Ket
  4925. CBra 1
  4926. Callout 255 1 9
  4927. [ab]{1,4}+
  4928. Callout 255 10 1
  4929. c
  4930. Callout 255 11 0
  4931. Alt
  4932. Callout 255 12 1
  4933. x
  4934. Callout 255 13 1
  4935. y
  4936. Callout 255 14 0
  4937. Ket
  4938. Braminzero
  4939. CBra 1
  4940. Callout 255 1 9
  4941. [ab]{1,4}+
  4942. Callout 255 10 1
  4943. c
  4944. Callout 255 11 0
  4945. Alt
  4946. Callout 255 12 1
  4947. x
  4948. Callout 255 13 1
  4949. y
  4950. Callout 255 14 0
  4951. Ket
  4952. Callout 255 21 1
  4953. 1
  4954. Callout 255 22 1
  4955. 2
  4956. Callout 255 23 1
  4957. 3
  4958. Callout 255 24 0
  4959. Ket
  4960. End
  4961. ------------------------------------------------------------------
  4962. Capturing subpattern count = 1
  4963. Options:
  4964. No first char
  4965. Need char = '3'
  4966. aacaacaacaacaac123
  4967. --->aacaacaacaacaac123
  4968. +0 ^ ([ab]{1,4}c|xy){4,5}?
  4969. +1 ^ [ab]{1,4}
  4970. +10 ^ ^ c
  4971. +11 ^ ^ |
  4972. +1 ^ ^ [ab]{1,4}
  4973. +10 ^ ^ c
  4974. +11 ^ ^ |
  4975. +1 ^ ^ [ab]{1,4}
  4976. +10 ^ ^ c
  4977. +11 ^ ^ |
  4978. +1 ^ ^ [ab]{1,4}
  4979. +10 ^ ^ c
  4980. +11 ^ ^ |
  4981. +21 ^ ^ 1
  4982. +1 ^ ^ [ab]{1,4}
  4983. +10 ^ ^ c
  4984. +11 ^ ^ |
  4985. +21 ^ ^ 1
  4986. +22 ^ ^ 2
  4987. +23 ^ ^ 3
  4988. +24 ^ ^
  4989. 0: aacaacaacaacaac123
  4990. 1: aac
  4991. /\b.*/I
  4992. Capturing subpattern count = 0
  4993. Max lookbehind = 1
  4994. May match empty string
  4995. No options
  4996. No first char
  4997. No need char
  4998. ab cd\>1
  4999. 0: cd
  5000. /\b.*/Is
  5001. Capturing subpattern count = 0
  5002. Max lookbehind = 1
  5003. May match empty string
  5004. Options: dotall
  5005. No first char
  5006. No need char
  5007. ab cd\>1
  5008. 0: cd
  5009. /(?!.bcd).*/I
  5010. Capturing subpattern count = 0
  5011. May match empty string
  5012. No options
  5013. No first char
  5014. No need char
  5015. Xbcd12345
  5016. 0: bcd12345
  5017. /abcde/I
  5018. Capturing subpattern count = 0
  5019. No options
  5020. First char = 'a'
  5021. Need char = 'e'
  5022. ab\P
  5023. Partial match: ab
  5024. abc\P
  5025. Partial match: abc
  5026. abcd\P
  5027. Partial match: abcd
  5028. abcde\P
  5029. 0: abcde
  5030. the quick brown abc\P
  5031. Partial match: abc
  5032. ** Failers\P
  5033. No match
  5034. the quick brown abxyz fox\P
  5035. No match
  5036. "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
  5037. Capturing subpattern count = 3
  5038. Options: anchored
  5039. No first char
  5040. Need char = '/'
  5041. 13/05/04\P
  5042. 0: 13/05/04
  5043. 1: 13
  5044. 2: 05
  5045. 13/5/2004\P
  5046. 0: 13/5/2004
  5047. 1: 13
  5048. 2: 5
  5049. 3: 20
  5050. 02/05/09\P
  5051. 0: 02/05/09
  5052. 1: 02
  5053. 2: 05
  5054. 1\P
  5055. Partial match: 1
  5056. 1/2\P
  5057. Partial match: 1/2
  5058. 1/2/0\P
  5059. Partial match: 1/2/0
  5060. 1/2/04\P
  5061. 0: 1/2/04
  5062. 1: 1
  5063. 2: 2
  5064. 0\P
  5065. Partial match: 0
  5066. 02/\P
  5067. Partial match: 02/
  5068. 02/0\P
  5069. Partial match: 02/0
  5070. 02/1\P
  5071. Partial match: 02/1
  5072. ** Failers\P
  5073. No match
  5074. \P
  5075. No match
  5076. 123\P
  5077. No match
  5078. 33/4/04\P
  5079. No match
  5080. 3/13/04\P
  5081. No match
  5082. 0/1/2003\P
  5083. No match
  5084. 0/\P
  5085. No match
  5086. 02/0/\P
  5087. No match
  5088. 02/13\P
  5089. No match
  5090. /0{0,2}ABC/I
  5091. Capturing subpattern count = 0
  5092. No options
  5093. No first char
  5094. Need char = 'C'
  5095. /\d{3,}ABC/I
  5096. Capturing subpattern count = 0
  5097. No options
  5098. No first char
  5099. Need char = 'C'
  5100. /\d*ABC/I
  5101. Capturing subpattern count = 0
  5102. No options
  5103. No first char
  5104. Need char = 'C'
  5105. /[abc]+DE/I
  5106. Capturing subpattern count = 0
  5107. No options
  5108. No first char
  5109. Need char = 'E'
  5110. /[abc]?123/I
  5111. Capturing subpattern count = 0
  5112. No options
  5113. No first char
  5114. Need char = '3'
  5115. 123\P
  5116. 0: 123
  5117. a\P
  5118. Partial match: a
  5119. b\P
  5120. Partial match: b
  5121. c\P
  5122. Partial match: c
  5123. c12\P
  5124. Partial match: c12
  5125. c123\P
  5126. 0: c123
  5127. /^(?:\d){3,5}X/I
  5128. Capturing subpattern count = 0
  5129. Options: anchored
  5130. No first char
  5131. Need char = 'X'
  5132. 1\P
  5133. Partial match: 1
  5134. 123\P
  5135. Partial match: 123
  5136. 123X
  5137. 0: 123X
  5138. 1234\P
  5139. Partial match: 1234
  5140. 1234X
  5141. 0: 1234X
  5142. 12345\P
  5143. Partial match: 12345
  5144. 12345X
  5145. 0: 12345X
  5146. *** Failers
  5147. No match
  5148. 1X
  5149. No match
  5150. 123456\P
  5151. No match
  5152. //KF>testsavedregex
  5153. Compiled pattern written to testsavedregex
  5154. Study data written to testsavedregex
  5155. /abc/IS>testsavedregex
  5156. Capturing subpattern count = 0
  5157. No options
  5158. First char = 'a'
  5159. Need char = 'c'
  5160. Subject length lower bound = 3
  5161. No starting char list
  5162. Compiled pattern written to testsavedregex
  5163. Study data written to testsavedregex
  5164. <testsavedregex
  5165. Compiled pattern loaded from testsavedregex
  5166. Study data loaded from testsavedregex
  5167. abc
  5168. 0: abc
  5169. ** Failers
  5170. No match
  5171. bca
  5172. No match
  5173. /abc/ISS>testsavedregex
  5174. Capturing subpattern count = 0
  5175. No options
  5176. First char = 'a'
  5177. Need char = 'c'
  5178. Compiled pattern written to testsavedregex
  5179. <testsavedregex
  5180. Compiled pattern loaded from testsavedregex
  5181. No study data
  5182. abc
  5183. 0: abc
  5184. ** Failers
  5185. No match
  5186. bca
  5187. No match
  5188. /abc/IFS>testsavedregex
  5189. Capturing subpattern count = 0
  5190. No options
  5191. First char = 'a'
  5192. Need char = 'c'
  5193. Subject length lower bound = 3
  5194. No starting char list
  5195. Compiled pattern written to testsavedregex
  5196. Study data written to testsavedregex
  5197. <testsavedregex
  5198. Compiled pattern (byte-inverted) loaded from testsavedregex
  5199. Study data loaded from testsavedregex
  5200. abc
  5201. 0: abc
  5202. ** Failers
  5203. No match
  5204. bca
  5205. No match
  5206. /abc/IFSS>testsavedregex
  5207. Capturing subpattern count = 0
  5208. No options
  5209. First char = 'a'
  5210. Need char = 'c'
  5211. Compiled pattern written to testsavedregex
  5212. <testsavedregex
  5213. Compiled pattern (byte-inverted) loaded from testsavedregex
  5214. No study data
  5215. abc
  5216. 0: abc
  5217. ** Failers
  5218. No match
  5219. bca
  5220. No match
  5221. /(a|b)/IS>testsavedregex
  5222. Capturing subpattern count = 1
  5223. No options
  5224. No first char
  5225. No need char
  5226. Subject length lower bound = 1
  5227. Starting chars: a b
  5228. Compiled pattern written to testsavedregex
  5229. Study data written to testsavedregex
  5230. <testsavedregex
  5231. Compiled pattern loaded from testsavedregex
  5232. Study data loaded from testsavedregex
  5233. abc
  5234. 0: a
  5235. 1: a
  5236. ** Failers
  5237. 0: a
  5238. 1: a
  5239. def
  5240. No match
  5241. /(a|b)/ISS>testsavedregex
  5242. Capturing subpattern count = 1
  5243. No options
  5244. No first char
  5245. No need char
  5246. Compiled pattern written to testsavedregex
  5247. <testsavedregex
  5248. Compiled pattern loaded from testsavedregex
  5249. No study data
  5250. abc
  5251. 0: a
  5252. 1: a
  5253. ** Failers
  5254. 0: a
  5255. 1: a
  5256. def
  5257. No match
  5258. /(a|b)/ISF>testsavedregex
  5259. Capturing subpattern count = 1
  5260. No options
  5261. No first char
  5262. No need char
  5263. Subject length lower bound = 1
  5264. Starting chars: a b
  5265. Compiled pattern written to testsavedregex
  5266. Study data written to testsavedregex
  5267. <testsavedregex
  5268. Compiled pattern (byte-inverted) loaded from testsavedregex
  5269. Study data loaded from testsavedregex
  5270. abc
  5271. 0: a
  5272. 1: a
  5273. ** Failers
  5274. 0: a
  5275. 1: a
  5276. def
  5277. No match
  5278. /(a|b)/ISSF>testsavedregex
  5279. Capturing subpattern count = 1
  5280. No options
  5281. No first char
  5282. No need char
  5283. Compiled pattern written to testsavedregex
  5284. <testsavedregex
  5285. Compiled pattern (byte-inverted) loaded from testsavedregex
  5286. No study data
  5287. abc
  5288. 0: a
  5289. 1: a
  5290. ** Failers
  5291. 0: a
  5292. 1: a
  5293. def
  5294. No match
  5295. ~<(\w+)/?>(.)*</(\1)>~smgI
  5296. Capturing subpattern count = 3
  5297. Max back reference = 1
  5298. Options: multiline dotall
  5299. First char = '<'
  5300. Need char = '>'
  5301. \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
  5302. 0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>
  5303. 1: seite
  5304. 2: \x0a
  5305. 3: seite
  5306. /^a/IF
  5307. Capturing subpattern count = 0
  5308. Options: anchored
  5309. No first char
  5310. No need char
  5311. /line\nbreak/I
  5312. Capturing subpattern count = 0
  5313. Contains explicit CR or LF match
  5314. No options
  5315. First char = 'l'
  5316. Need char = 'k'
  5317. this is a line\nbreak
  5318. 0: line\x0abreak
  5319. line one\nthis is a line\nbreak in the second line
  5320. 0: line\x0abreak
  5321. /line\nbreak/If
  5322. Capturing subpattern count = 0
  5323. Contains explicit CR or LF match
  5324. Options: firstline
  5325. First char = 'l'
  5326. Need char = 'k'
  5327. this is a line\nbreak
  5328. 0: line\x0abreak
  5329. ** Failers
  5330. No match
  5331. line one\nthis is a line\nbreak in the second line
  5332. No match
  5333. /line\nbreak/Imf
  5334. Capturing subpattern count = 0
  5335. Contains explicit CR or LF match
  5336. Options: multiline firstline
  5337. First char = 'l'
  5338. Need char = 'k'
  5339. this is a line\nbreak
  5340. 0: line\x0abreak
  5341. ** Failers
  5342. No match
  5343. line one\nthis is a line\nbreak in the second line
  5344. No match
  5345. /(?i)(?-i)AbCd/I
  5346. Capturing subpattern count = 0
  5347. No options
  5348. First char = 'A'
  5349. Need char = 'd'
  5350. AbCd
  5351. 0: AbCd
  5352. ** Failers
  5353. No match
  5354. abcd
  5355. No match
  5356. /a{11111111111111111111}/I
  5357. Failed: number too big in {} quantifier at offset 8
  5358. /(){64294967295}/I
  5359. Failed: number too big in {} quantifier at offset 9
  5360. /(){2,4294967295}/I
  5361. Failed: number too big in {} quantifier at offset 11
  5362. "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I
  5363. Capturing subpattern count = 1
  5364. Max back reference = 1
  5365. No options
  5366. First char = 'a' (caseless)
  5367. Need char = 'B'
  5368. abcdefghijklAkB
  5369. 0: abcdefghijklAkB
  5370. 1: k
  5371. "(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)A\11B"I
  5372. Capturing subpattern count = 12
  5373. Max back reference = 11
  5374. Named capturing subpatterns:
  5375. n0 1
  5376. n1 2
  5377. n10 11
  5378. n11 12
  5379. n2 3
  5380. n3 4
  5381. n4 5
  5382. n5 6
  5383. n6 7
  5384. n7 8
  5385. n8 9
  5386. n9 10
  5387. No options
  5388. First char = 'a'
  5389. Need char = 'B'
  5390. abcdefghijklAkB
  5391. 0: abcdefghijklAkB
  5392. 1: a
  5393. 2: b
  5394. 3: c
  5395. 4: d
  5396. 5: e
  5397. 6: f
  5398. 7: g
  5399. 8: h
  5400. 9: i
  5401. 10: j
  5402. 11: k
  5403. 12: l
  5404. "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
  5405. Capturing subpattern count = 12
  5406. Max back reference = 11
  5407. No options
  5408. First char = 'a'
  5409. Need char = 'B'
  5410. abcdefghijklAkB
  5411. 0: abcdefghijklAkB
  5412. 1: a
  5413. 2: b
  5414. 3: c
  5415. 4: d
  5416. 5: e
  5417. 6: f
  5418. 7: g
  5419. 8: h
  5420. 9: i
  5421. 10: j
  5422. 11: k
  5423. 12: l
  5424. "(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"I
  5425. Capturing subpattern count = 101
  5426. Named capturing subpatterns:
  5427. name0 1
  5428. name1 2
  5429. name10 11
  5430. name100 101
  5431. name11 12
  5432. name12 13
  5433. name13 14
  5434. name14 15
  5435. name15 16
  5436. name16 17
  5437. name17 18
  5438. name18 19
  5439. name19 20
  5440. name2 3
  5441. name20 21
  5442. name21 22
  5443. name22 23
  5444. name23 24
  5445. name24 25
  5446. name25 26
  5447. name26 27
  5448. name27 28
  5449. name28 29
  5450. name29 30
  5451. name3 4
  5452. name30 31
  5453. name31 32
  5454. name32 33
  5455. name33 34
  5456. name34 35
  5457. name35 36
  5458. name36 37
  5459. name37 38
  5460. name38 39
  5461. name39 40
  5462. name4 5
  5463. name40 41
  5464. name41 42
  5465. name42 43
  5466. name43 44
  5467. name44 45
  5468. name45 46
  5469. name46 47
  5470. name47 48
  5471. name48 49
  5472. name49 50
  5473. name5 6
  5474. name50 51
  5475. name51 52
  5476. name52 53
  5477. name53 54
  5478. name54 55
  5479. name55 56
  5480. name56 57
  5481. name57 58
  5482. name58 59
  5483. name59 60
  5484. name6 7
  5485. name60 61
  5486. name61 62
  5487. name62 63
  5488. name63 64
  5489. name64 65
  5490. name65 66
  5491. name66 67
  5492. name67 68
  5493. name68 69
  5494. name69 70
  5495. name7 8
  5496. name70 71
  5497. name71 72
  5498. name72 73
  5499. name73 74
  5500. name74 75
  5501. name75 76
  5502. name76 77
  5503. name77 78
  5504. name78 79
  5505. name79 80
  5506. name8 9
  5507. name80 81
  5508. name81 82
  5509. name82 83
  5510. name83 84
  5511. name84 85
  5512. name85 86
  5513. name86 87
  5514. name87 88
  5515. name88 89
  5516. name89 90
  5517. name9 10
  5518. name90 91
  5519. name91 92
  5520. name92 93
  5521. name93 94
  5522. name94 95
  5523. name95 96
  5524. name96 97
  5525. name97 98
  5526. name98 99
  5527. name99 100
  5528. No options
  5529. First char = 'a'
  5530. Need char = 'a'
  5531. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  5532. Matched, but too many substrings
  5533. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  5534. 1: a
  5535. 2: a
  5536. 3: a
  5537. 4: a
  5538. 5: a
  5539. 6: a
  5540. 7: a
  5541. 8: a
  5542. 9: a
  5543. 10: a
  5544. 11: a
  5545. 12: a
  5546. 13: a
  5547. 14: a
  5548. "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)"I
  5549. Capturing subpattern count = 101
  5550. No options
  5551. First char = 'a'
  5552. Need char = 'a'
  5553. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  5554. Matched, but too many substrings
  5555. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  5556. 1: a
  5557. 2: a
  5558. 3: a
  5559. 4: a
  5560. 5: a
  5561. 6: a
  5562. 7: a
  5563. 8: a
  5564. 9: a
  5565. 10: a
  5566. 11: a
  5567. 12: a
  5568. 13: a
  5569. 14: a
  5570. /[^()]*(?:\((?R)\)[^()]*)*/I
  5571. Capturing subpattern count = 0
  5572. May match empty string
  5573. No options
  5574. No first char
  5575. No need char
  5576. (this(and)that
  5577. 0:
  5578. (this(and)that)
  5579. 0: (this(and)that)
  5580. (this(and)that)stuff
  5581. 0: (this(and)that)stuff
  5582. /[^()]*(?:\((?>(?R))\)[^()]*)*/I
  5583. Capturing subpattern count = 0
  5584. May match empty string
  5585. No options
  5586. No first char
  5587. No need char
  5588. (this(and)that
  5589. 0:
  5590. (this(and)that)
  5591. 0: (this(and)that)
  5592. /[^()]*(?:\((?R)\))*[^()]*/I
  5593. Capturing subpattern count = 0
  5594. May match empty string
  5595. No options
  5596. No first char
  5597. No need char
  5598. (this(and)that
  5599. 0:
  5600. (this(and)that)
  5601. 0: (this(and)that)
  5602. /(?:\((?R)\))*[^()]*/I
  5603. Capturing subpattern count = 0
  5604. May match empty string
  5605. No options
  5606. No first char
  5607. No need char
  5608. (this(and)that
  5609. 0:
  5610. (this(and)that)
  5611. 0:
  5612. ((this))
  5613. 0: ((this))
  5614. /(?:\((?R)\))|[^()]*/I
  5615. Capturing subpattern count = 0
  5616. May match empty string
  5617. No options
  5618. No first char
  5619. No need char
  5620. (this(and)that
  5621. 0:
  5622. (this(and)that)
  5623. 0:
  5624. (this)
  5625. 0: (this)
  5626. ((this))
  5627. 0: ((this))
  5628. /\x{0000ff}/I
  5629. Capturing subpattern count = 0
  5630. No options
  5631. First char = \xff
  5632. No need char
  5633. /^((?P<A>a1)|(?P<A>a2)b)/I
  5634. Failed: two named subpatterns have the same name at offset 17
  5635. /^((?P<A>a1)|(?P<A>a2)b)/IJ
  5636. Capturing subpattern count = 3
  5637. Named capturing subpatterns:
  5638. A 2
  5639. A 3
  5640. Options: anchored dupnames
  5641. No first char
  5642. No need char
  5643. a1b\CA
  5644. 0: a1
  5645. 1: a1
  5646. 2: a1
  5647. C a1 (2) A
  5648. a2b\CA
  5649. 0: a2b
  5650. 1: a2b
  5651. 2: <unset>
  5652. 3: a2
  5653. C a2 (2) A
  5654. ** Failers
  5655. No match
  5656. a1b\CZ\CA
  5657. no parentheses with name "Z"
  5658. 0: a1
  5659. 1: a1
  5660. 2: a1
  5661. copy substring Z failed -7
  5662. C a1 (2) A
  5663. /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
  5664. Capturing subpattern count = 3
  5665. Named capturing subpatterns:
  5666. a 1
  5667. a 3
  5668. b 2
  5669. May match empty string
  5670. Options: dupnames
  5671. No first char
  5672. No need char
  5673. /^(?P<A>a)(?P<A>b)/IJ
  5674. Capturing subpattern count = 2
  5675. Named capturing subpatterns:
  5676. A 1
  5677. A 2
  5678. Options: anchored dupnames
  5679. No first char
  5680. No need char
  5681. ab\CA
  5682. 0: ab
  5683. 1: a
  5684. 2: b
  5685. C a (1) A
  5686. /^(?P<A>a)(?P<A>b)|cd/IJ
  5687. Capturing subpattern count = 2
  5688. Named capturing subpatterns:
  5689. A 1
  5690. A 2
  5691. Options: dupnames
  5692. No first char
  5693. No need char
  5694. ab\CA
  5695. 0: ab
  5696. 1: a
  5697. 2: b
  5698. C a (1) A
  5699. cd\CA
  5700. 0: cd
  5701. copy substring A failed -7
  5702. /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
  5703. Capturing subpattern count = 4
  5704. Named capturing subpatterns:
  5705. A 1
  5706. A 2
  5707. A 3
  5708. A 4
  5709. Options: dupnames
  5710. No first char
  5711. No need char
  5712. cdefgh\CA
  5713. 0: cdefgh
  5714. 1: <unset>
  5715. 2: <unset>
  5716. 3: ef
  5717. 4: gh
  5718. C ef (2) A
  5719. /^((?P<A>a1)|(?P<A>a2)b)/IJ
  5720. Capturing subpattern count = 3
  5721. Named capturing subpatterns:
  5722. A 2
  5723. A 3
  5724. Options: anchored dupnames
  5725. No first char
  5726. No need char
  5727. a1b\GA
  5728. 0: a1
  5729. 1: a1
  5730. 2: a1
  5731. G a1 (2) A
  5732. a2b\GA
  5733. 0: a2b
  5734. 1: a2b
  5735. 2: <unset>
  5736. 3: a2
  5737. G a2 (2) A
  5738. ** Failers
  5739. No match
  5740. a1b\GZ\GA
  5741. no parentheses with name "Z"
  5742. 0: a1
  5743. 1: a1
  5744. 2: a1
  5745. get substring Z failed -7
  5746. G a1 (2) A
  5747. /^(?P<A>a)(?P<A>b)/IJ
  5748. Capturing subpattern count = 2
  5749. Named capturing subpatterns:
  5750. A 1
  5751. A 2
  5752. Options: anchored dupnames
  5753. No first char
  5754. No need char
  5755. ab\GA
  5756. 0: ab
  5757. 1: a
  5758. 2: b
  5759. G a (1) A
  5760. /^(?P<A>a)(?P<A>b)|cd/IJ
  5761. Capturing subpattern count = 2
  5762. Named capturing subpatterns:
  5763. A 1
  5764. A 2
  5765. Options: dupnames
  5766. No first char
  5767. No need char
  5768. ab\GA
  5769. 0: ab
  5770. 1: a
  5771. 2: b
  5772. G a (1) A
  5773. cd\GA
  5774. 0: cd
  5775. get substring A failed -7
  5776. /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
  5777. Capturing subpattern count = 4
  5778. Named capturing subpatterns:
  5779. A 1
  5780. A 2
  5781. A 3
  5782. A 4
  5783. Options: dupnames
  5784. No first char
  5785. No need char
  5786. cdefgh\GA
  5787. 0: cdefgh
  5788. 1: <unset>
  5789. 2: <unset>
  5790. 3: ef
  5791. 4: gh
  5792. G ef (2) A
  5793. /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
  5794. Capturing subpattern count = 3
  5795. Named capturing subpatterns:
  5796. A 2
  5797. A 3
  5798. Options: anchored
  5799. Duplicate name status changes
  5800. No first char
  5801. No need char
  5802. a1b\CA
  5803. 0: a1
  5804. 1: a1
  5805. 2: a1
  5806. C a1 (2) A
  5807. a2b\CA
  5808. 0: a2b
  5809. 1: a2b
  5810. 2: <unset>
  5811. 3: a2
  5812. C a2 (2) A
  5813. /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
  5814. Failed: two named subpatterns have the same name at offset 37
  5815. / In this next test, J is not set at the outer level; consequently it isn't
  5816. set in the pattern's options; consequently pcre_get_named_substring() produces
  5817. a random value. /Ix
  5818. Capturing subpattern count = 1
  5819. Options: extended
  5820. First char = 'I'
  5821. Need char = 'e'
  5822. /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
  5823. Capturing subpattern count = 4
  5824. Named capturing subpatterns:
  5825. A 1
  5826. B 2
  5827. B 3
  5828. C 4
  5829. Options: anchored
  5830. Duplicate name status changes
  5831. No first char
  5832. No need char
  5833. a bc d\CA\CB\CC
  5834. 0: a bc d
  5835. 1: a
  5836. 2: b
  5837. 3: c
  5838. 4: d
  5839. C a (1) A
  5840. C b (1) B
  5841. C d (1) C
  5842. /^(?P<A>a)?(?(A)a|b)/I
  5843. Capturing subpattern count = 1
  5844. Max back reference = 1
  5845. Named capturing subpatterns:
  5846. A 1
  5847. Options: anchored
  5848. No first char
  5849. No need char
  5850. aabc
  5851. 0: aa
  5852. 1: a
  5853. bc
  5854. 0: b
  5855. ** Failers
  5856. No match
  5857. abc
  5858. No match
  5859. /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
  5860. Capturing subpattern count = 1
  5861. Max back reference = 1
  5862. Named capturing subpatterns:
  5863. ZZ 1
  5864. No options
  5865. No first char
  5866. Need char = 'X'
  5867. bXaX
  5868. 0: bXaX
  5869. 1: X
  5870. /(?:(?(2y)a|b)(X))+/I
  5871. Failed: malformed number or name after (?( at offset 7
  5872. /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
  5873. Failed: reference to non-existent subpattern at offset 9
  5874. /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
  5875. Capturing subpattern count = 1
  5876. Max back reference = 1
  5877. Named capturing subpatterns:
  5878. ZZ 1
  5879. No options
  5880. No first char
  5881. Need char = 'X'
  5882. bbXaaX
  5883. 0: bbXaaX
  5884. 1: X
  5885. /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
  5886. Capturing subpattern count = 1
  5887. Max back reference = 1
  5888. Named capturing subpatterns:
  5889. ZZ 1
  5890. No options
  5891. No first char
  5892. Need char = 'X'
  5893. (b)\\Xa\\X
  5894. 0: (b)\Xa\X
  5895. 1: X
  5896. /(?P<ABC/I
  5897. Failed: syntax error in subpattern name (missing terminator) at offset 7
  5898. /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
  5899. Capturing subpattern count = 1
  5900. Max back reference = 1
  5901. Named capturing subpatterns:
  5902. A 1
  5903. No options
  5904. No first char
  5905. No need char
  5906. bXXaYYaY
  5907. 0: bXXaYYaY
  5908. 1: Y
  5909. bXYaXXaX
  5910. 0: bX
  5911. 1: X
  5912. /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
  5913. Capturing subpattern count = 10
  5914. Max back reference = 10
  5915. Named capturing subpatterns:
  5916. A 10
  5917. No options
  5918. No first char
  5919. No need char
  5920. bXXaYYaY
  5921. 0: bXXaYYaY
  5922. 1:
  5923. 2:
  5924. 3:
  5925. 4:
  5926. 5:
  5927. 6:
  5928. 7:
  5929. 8:
  5930. 9:
  5931. 10: Y
  5932. /\s*,\s*/IS
  5933. Capturing subpattern count = 0
  5934. No options
  5935. No first char
  5936. Need char = ','
  5937. Subject length lower bound = 1
  5938. Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 ,
  5939. \x0b,\x0b
  5940. 0: \x0b,\x0b
  5941. \x0c,\x0d
  5942. 0: \x0c,\x0d
  5943. /^abc/Im
  5944. Capturing subpattern count = 0
  5945. Options: multiline
  5946. First char at start or follows newline
  5947. Need char = 'c'
  5948. xyz\nabc
  5949. 0: abc
  5950. xyz\nabc\<lf>
  5951. 0: abc
  5952. xyz\r\nabc\<lf>
  5953. 0: abc
  5954. xyz\rabc\<cr>
  5955. 0: abc
  5956. xyz\r\nabc\<crlf>
  5957. 0: abc
  5958. ** Failers
  5959. No match
  5960. xyz\nabc\<cr>
  5961. No match
  5962. xyz\r\nabc\<cr>
  5963. No match
  5964. xyz\nabc\<crlf>
  5965. No match
  5966. xyz\rabc\<crlf>
  5967. No match
  5968. xyz\rabc\<lf>
  5969. No match
  5970. /abc$/Im<lf>
  5971. Capturing subpattern count = 0
  5972. Options: multiline
  5973. Forced newline sequence: LF
  5974. First char = 'a'
  5975. Need char = 'c'
  5976. xyzabc
  5977. 0: abc
  5978. xyzabc\n
  5979. 0: abc
  5980. xyzabc\npqr
  5981. 0: abc
  5982. xyzabc\r\<cr>
  5983. 0: abc
  5984. xyzabc\rpqr\<cr>
  5985. 0: abc
  5986. xyzabc\r\n\<crlf>
  5987. 0: abc
  5988. xyzabc\r\npqr\<crlf>
  5989. 0: abc
  5990. ** Failers
  5991. No match
  5992. xyzabc\r
  5993. No match
  5994. xyzabc\rpqr
  5995. No match
  5996. xyzabc\r\n
  5997. No match
  5998. xyzabc\r\npqr
  5999. No match
  6000. /^abc/Im<cr>
  6001. Capturing subpattern count = 0
  6002. Options: multiline
  6003. Forced newline sequence: CR
  6004. First char at start or follows newline
  6005. Need char = 'c'
  6006. xyz\rabcdef
  6007. 0: abc
  6008. xyz\nabcdef\<lf>
  6009. 0: abc
  6010. ** Failers
  6011. No match
  6012. xyz\nabcdef
  6013. No match
  6014. /^abc/Im<lf>
  6015. Capturing subpattern count = 0
  6016. Options: multiline
  6017. Forced newline sequence: LF
  6018. First char at start or follows newline
  6019. Need char = 'c'
  6020. xyz\nabcdef
  6021. 0: abc
  6022. xyz\rabcdef\<cr>
  6023. 0: abc
  6024. ** Failers
  6025. No match
  6026. xyz\rabcdef
  6027. No match
  6028. /^abc/Im<crlf>
  6029. Capturing subpattern count = 0
  6030. Options: multiline
  6031. Forced newline sequence: CRLF
  6032. First char at start or follows newline
  6033. Need char = 'c'
  6034. xyz\r\nabcdef
  6035. 0: abc
  6036. xyz\rabcdef\<cr>
  6037. 0: abc
  6038. ** Failers
  6039. No match
  6040. xyz\rabcdef
  6041. No match
  6042. /^abc/Im<bad>
  6043. Unknown modifier at: <bad>
  6044. /abc/I
  6045. Capturing subpattern count = 0
  6046. No options
  6047. First char = 'a'
  6048. Need char = 'c'
  6049. xyz\rabc\<bad>
  6050. Unknown escape sequence at: <bad>
  6051. abc
  6052. 0: abc
  6053. /.*/I<lf>
  6054. Capturing subpattern count = 0
  6055. May match empty string
  6056. Options:
  6057. Forced newline sequence: LF
  6058. First char at start or follows newline
  6059. No need char
  6060. abc\ndef
  6061. 0: abc
  6062. abc\rdef
  6063. 0: abc\x0ddef
  6064. abc\r\ndef
  6065. 0: abc\x0d
  6066. \<cr>abc\ndef
  6067. 0: abc\x0adef
  6068. \<cr>abc\rdef
  6069. 0: abc
  6070. \<cr>abc\r\ndef
  6071. 0: abc
  6072. \<crlf>abc\ndef
  6073. 0: abc\x0adef
  6074. \<crlf>abc\rdef
  6075. 0: abc\x0ddef
  6076. \<crlf>abc\r\ndef
  6077. 0: abc
  6078. /\w+(.)(.)?def/Is
  6079. Capturing subpattern count = 2
  6080. Options: dotall
  6081. No first char
  6082. Need char = 'f'
  6083. abc\ndef
  6084. 0: abc\x0adef
  6085. 1: \x0a
  6086. abc\rdef
  6087. 0: abc\x0ddef
  6088. 1: \x0d
  6089. abc\r\ndef
  6090. 0: abc\x0d\x0adef
  6091. 1: \x0d
  6092. 2: \x0a
  6093. +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
  6094. Capturing subpattern count = 1
  6095. May match empty string
  6096. No options
  6097. No first char
  6098. No need char
  6099. /* this is a C style comment */\M
  6100. Minimum match() limit = 120
  6101. Minimum match() recursion limit = 6
  6102. 0: /* this is a C style comment */
  6103. 1: /* this is a C style comment */
  6104. /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
  6105. Capturing subpattern count = 1
  6106. Named capturing subpatterns:
  6107. B 1
  6108. No options
  6109. No first char
  6110. Need char = '.'
  6111. /()()()()()()()()()()()()()()()()()()()()
  6112. ()()()()()()()()()()()()()()()()()()()()
  6113. ()()()()()()()()()()()()()()()()()()()()
  6114. ()()()()()()()()()()()()()()()()()()()()
  6115. ()()()()()()()()()()()()()()()()()()()()
  6116. (.(.))/Ix
  6117. Capturing subpattern count = 102
  6118. Options: extended
  6119. No first char
  6120. No need char
  6121. XY\O400
  6122. 0: XY
  6123. 1:
  6124. 2:
  6125. 3:
  6126. 4:
  6127. 5:
  6128. 6:
  6129. 7:
  6130. 8:
  6131. 9:
  6132. 10:
  6133. 11:
  6134. 12:
  6135. 13:
  6136. 14:
  6137. 15:
  6138. 16:
  6139. 17:
  6140. 18:
  6141. 19:
  6142. 20:
  6143. 21:
  6144. 22:
  6145. 23:
  6146. 24:
  6147. 25:
  6148. 26:
  6149. 27:
  6150. 28:
  6151. 29:
  6152. 30:
  6153. 31:
  6154. 32:
  6155. 33:
  6156. 34:
  6157. 35:
  6158. 36:
  6159. 37:
  6160. 38:
  6161. 39:
  6162. 40:
  6163. 41:
  6164. 42:
  6165. 43:
  6166. 44:
  6167. 45:
  6168. 46:
  6169. 47:
  6170. 48:
  6171. 49:
  6172. 50:
  6173. 51:
  6174. 52:
  6175. 53:
  6176. 54:
  6177. 55:
  6178. 56:
  6179. 57:
  6180. 58:
  6181. 59:
  6182. 60:
  6183. 61:
  6184. 62:
  6185. 63:
  6186. 64:
  6187. 65:
  6188. 66:
  6189. 67:
  6190. 68:
  6191. 69:
  6192. 70:
  6193. 71:
  6194. 72:
  6195. 73:
  6196. 74:
  6197. 75:
  6198. 76:
  6199. 77:
  6200. 78:
  6201. 79:
  6202. 80:
  6203. 81:
  6204. 82:
  6205. 83:
  6206. 84:
  6207. 85:
  6208. 86:
  6209. 87:
  6210. 88:
  6211. 89:
  6212. 90:
  6213. 91:
  6214. 92:
  6215. 93:
  6216. 94:
  6217. 95:
  6218. 96:
  6219. 97:
  6220. 98:
  6221. 99:
  6222. 100:
  6223. 101: XY
  6224. 102: Y
  6225. /(a*b|(?i:c*(?-i)d))/IS
  6226. Capturing subpattern count = 1
  6227. No options
  6228. No first char
  6229. No need char
  6230. Subject length lower bound = 1
  6231. Starting chars: C a b c d
  6232. /()[ab]xyz/IS
  6233. Capturing subpattern count = 1
  6234. No options
  6235. No first char
  6236. Need char = 'z'
  6237. Subject length lower bound = 4
  6238. Starting chars: a b
  6239. /(|)[ab]xyz/IS
  6240. Capturing subpattern count = 1
  6241. No options
  6242. No first char
  6243. Need char = 'z'
  6244. Subject length lower bound = 4
  6245. Starting chars: a b
  6246. /(|c)[ab]xyz/IS
  6247. Capturing subpattern count = 1
  6248. No options
  6249. No first char
  6250. Need char = 'z'
  6251. Subject length lower bound = 4
  6252. Starting chars: a b c
  6253. /(|c?)[ab]xyz/IS
  6254. Capturing subpattern count = 1
  6255. No options
  6256. No first char
  6257. Need char = 'z'
  6258. Subject length lower bound = 4
  6259. Starting chars: a b c
  6260. /(d?|c?)[ab]xyz/IS
  6261. Capturing subpattern count = 1
  6262. No options
  6263. No first char
  6264. Need char = 'z'
  6265. Subject length lower bound = 4
  6266. Starting chars: a b c d
  6267. /(d?|c)[ab]xyz/IS
  6268. Capturing subpattern count = 1
  6269. No options
  6270. No first char
  6271. Need char = 'z'
  6272. Subject length lower bound = 4
  6273. Starting chars: a b c d
  6274. /^a*b\d/DZ
  6275. ------------------------------------------------------------------
  6276. Bra
  6277. ^
  6278. a*+
  6279. b
  6280. \d
  6281. Ket
  6282. End
  6283. ------------------------------------------------------------------
  6284. Capturing subpattern count = 0
  6285. Options: anchored
  6286. No first char
  6287. Need char = 'b'
  6288. /^a*+b\d/DZ
  6289. ------------------------------------------------------------------
  6290. Bra
  6291. ^
  6292. a*+
  6293. b
  6294. \d
  6295. Ket
  6296. End
  6297. ------------------------------------------------------------------
  6298. Capturing subpattern count = 0
  6299. Options: anchored
  6300. No first char
  6301. Need char = 'b'
  6302. /^a*?b\d/DZ
  6303. ------------------------------------------------------------------
  6304. Bra
  6305. ^
  6306. a*+
  6307. b
  6308. \d
  6309. Ket
  6310. End
  6311. ------------------------------------------------------------------
  6312. Capturing subpattern count = 0
  6313. Options: anchored
  6314. No first char
  6315. Need char = 'b'
  6316. /^a+A\d/DZ
  6317. ------------------------------------------------------------------
  6318. Bra
  6319. ^
  6320. a++
  6321. A
  6322. \d
  6323. Ket
  6324. End
  6325. ------------------------------------------------------------------
  6326. Capturing subpattern count = 0
  6327. Options: anchored
  6328. No first char
  6329. Need char = 'A'
  6330. aaaA5
  6331. 0: aaaA5
  6332. ** Failers
  6333. No match
  6334. aaaa5
  6335. No match
  6336. /^a*A\d/IiDZ
  6337. ------------------------------------------------------------------
  6338. Bra
  6339. ^
  6340. /i a*
  6341. /i A
  6342. \d
  6343. Ket
  6344. End
  6345. ------------------------------------------------------------------
  6346. Capturing subpattern count = 0
  6347. Options: anchored caseless
  6348. No first char
  6349. Need char = 'A' (caseless)
  6350. aaaA5
  6351. 0: aaaA5
  6352. aaaa5
  6353. 0: aaaa5
  6354. /(a*|b*)[cd]/IS
  6355. Capturing subpattern count = 1
  6356. No options
  6357. No first char
  6358. No need char
  6359. Subject length lower bound = 1
  6360. Starting chars: a b c d
  6361. /(a+|b*)[cd]/IS
  6362. Capturing subpattern count = 1
  6363. No options
  6364. No first char
  6365. No need char
  6366. Subject length lower bound = 1
  6367. Starting chars: a b c d
  6368. /(a*|b+)[cd]/IS
  6369. Capturing subpattern count = 1
  6370. No options
  6371. No first char
  6372. No need char
  6373. Subject length lower bound = 1
  6374. Starting chars: a b c d
  6375. /(a+|b+)[cd]/IS
  6376. Capturing subpattern count = 1
  6377. No options
  6378. No first char
  6379. No need char
  6380. Subject length lower bound = 2
  6381. Starting chars: a b
  6382. /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
  6383. ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
  6384. (((
  6385. a
  6386. ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
  6387. ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
  6388. )))
  6389. /Ix
  6390. Capturing subpattern count = 203
  6391. Options: extended
  6392. First char = 'a'
  6393. No need char
  6394. large nest
  6395. Matched, but too many substrings
  6396. 0: a
  6397. 1: a
  6398. 2: a
  6399. 3: a
  6400. 4: a
  6401. 5: a
  6402. 6: a
  6403. 7: a
  6404. 8: a
  6405. 9: a
  6406. 10: a
  6407. 11: a
  6408. 12: a
  6409. 13: a
  6410. 14: a
  6411. /a*\d/BZ
  6412. ------------------------------------------------------------------
  6413. Bra
  6414. a*+
  6415. \d
  6416. Ket
  6417. End
  6418. ------------------------------------------------------------------
  6419. /a*\D/BZ
  6420. ------------------------------------------------------------------
  6421. Bra
  6422. a*
  6423. \D
  6424. Ket
  6425. End
  6426. ------------------------------------------------------------------
  6427. /0*\d/BZ
  6428. ------------------------------------------------------------------
  6429. Bra
  6430. 0*
  6431. \d
  6432. Ket
  6433. End
  6434. ------------------------------------------------------------------
  6435. /0*\D/BZ
  6436. ------------------------------------------------------------------
  6437. Bra
  6438. 0*+
  6439. \D
  6440. Ket
  6441. End
  6442. ------------------------------------------------------------------
  6443. /a*\s/BZ
  6444. ------------------------------------------------------------------
  6445. Bra
  6446. a*+
  6447. \s
  6448. Ket
  6449. End
  6450. ------------------------------------------------------------------
  6451. /a*\S/BZ
  6452. ------------------------------------------------------------------
  6453. Bra
  6454. a*
  6455. \S
  6456. Ket
  6457. End
  6458. ------------------------------------------------------------------
  6459. / *\s/BZ
  6460. ------------------------------------------------------------------
  6461. Bra
  6462. *
  6463. \s
  6464. Ket
  6465. End
  6466. ------------------------------------------------------------------
  6467. / *\S/BZ
  6468. ------------------------------------------------------------------
  6469. Bra
  6470. *+
  6471. \S
  6472. Ket
  6473. End
  6474. ------------------------------------------------------------------
  6475. /a*\w/BZ
  6476. ------------------------------------------------------------------
  6477. Bra
  6478. a*
  6479. \w
  6480. Ket
  6481. End
  6482. ------------------------------------------------------------------
  6483. /a*\W/BZ
  6484. ------------------------------------------------------------------
  6485. Bra
  6486. a*+
  6487. \W
  6488. Ket
  6489. End
  6490. ------------------------------------------------------------------
  6491. /=*\w/BZ
  6492. ------------------------------------------------------------------
  6493. Bra
  6494. =*+
  6495. \w
  6496. Ket
  6497. End
  6498. ------------------------------------------------------------------
  6499. /=*\W/BZ
  6500. ------------------------------------------------------------------
  6501. Bra
  6502. =*
  6503. \W
  6504. Ket
  6505. End
  6506. ------------------------------------------------------------------
  6507. /\d*a/BZ
  6508. ------------------------------------------------------------------
  6509. Bra
  6510. \d*+
  6511. a
  6512. Ket
  6513. End
  6514. ------------------------------------------------------------------
  6515. /\d*2/BZ
  6516. ------------------------------------------------------------------
  6517. Bra
  6518. \d*
  6519. 2
  6520. Ket
  6521. End
  6522. ------------------------------------------------------------------
  6523. /\d*\d/BZ
  6524. ------------------------------------------------------------------
  6525. Bra
  6526. \d*
  6527. \d
  6528. Ket
  6529. End
  6530. ------------------------------------------------------------------
  6531. /\d*\D/BZ
  6532. ------------------------------------------------------------------
  6533. Bra
  6534. \d*+
  6535. \D
  6536. Ket
  6537. End
  6538. ------------------------------------------------------------------
  6539. /\d*\s/BZ
  6540. ------------------------------------------------------------------
  6541. Bra
  6542. \d*+
  6543. \s
  6544. Ket
  6545. End
  6546. ------------------------------------------------------------------
  6547. /\d*\S/BZ
  6548. ------------------------------------------------------------------
  6549. Bra
  6550. \d*
  6551. \S
  6552. Ket
  6553. End
  6554. ------------------------------------------------------------------
  6555. /\d*\w/BZ
  6556. ------------------------------------------------------------------
  6557. Bra
  6558. \d*
  6559. \w
  6560. Ket
  6561. End
  6562. ------------------------------------------------------------------
  6563. /\d*\W/BZ
  6564. ------------------------------------------------------------------
  6565. Bra
  6566. \d*+
  6567. \W
  6568. Ket
  6569. End
  6570. ------------------------------------------------------------------
  6571. /\D*a/BZ
  6572. ------------------------------------------------------------------
  6573. Bra
  6574. \D*
  6575. a
  6576. Ket
  6577. End
  6578. ------------------------------------------------------------------
  6579. /\D*2/BZ
  6580. ------------------------------------------------------------------
  6581. Bra
  6582. \D*+
  6583. 2
  6584. Ket
  6585. End
  6586. ------------------------------------------------------------------
  6587. /\D*\d/BZ
  6588. ------------------------------------------------------------------
  6589. Bra
  6590. \D*+
  6591. \d
  6592. Ket
  6593. End
  6594. ------------------------------------------------------------------
  6595. /\D*\D/BZ
  6596. ------------------------------------------------------------------
  6597. Bra
  6598. \D*
  6599. \D
  6600. Ket
  6601. End
  6602. ------------------------------------------------------------------
  6603. /\D*\s/BZ
  6604. ------------------------------------------------------------------
  6605. Bra
  6606. \D*
  6607. \s
  6608. Ket
  6609. End
  6610. ------------------------------------------------------------------
  6611. /\D*\S/BZ
  6612. ------------------------------------------------------------------
  6613. Bra
  6614. \D*
  6615. \S
  6616. Ket
  6617. End
  6618. ------------------------------------------------------------------
  6619. /\D*\w/BZ
  6620. ------------------------------------------------------------------
  6621. Bra
  6622. \D*
  6623. \w
  6624. Ket
  6625. End
  6626. ------------------------------------------------------------------
  6627. /\D*\W/BZ
  6628. ------------------------------------------------------------------
  6629. Bra
  6630. \D*
  6631. \W
  6632. Ket
  6633. End
  6634. ------------------------------------------------------------------
  6635. /\s*a/BZ
  6636. ------------------------------------------------------------------
  6637. Bra
  6638. \s*+
  6639. a
  6640. Ket
  6641. End
  6642. ------------------------------------------------------------------
  6643. /\s*2/BZ
  6644. ------------------------------------------------------------------
  6645. Bra
  6646. \s*+
  6647. 2
  6648. Ket
  6649. End
  6650. ------------------------------------------------------------------
  6651. /\s*\d/BZ
  6652. ------------------------------------------------------------------
  6653. Bra
  6654. \s*+
  6655. \d
  6656. Ket
  6657. End
  6658. ------------------------------------------------------------------
  6659. /\s*\D/BZ
  6660. ------------------------------------------------------------------
  6661. Bra
  6662. \s*
  6663. \D
  6664. Ket
  6665. End
  6666. ------------------------------------------------------------------
  6667. /\s*\s/BZ
  6668. ------------------------------------------------------------------
  6669. Bra
  6670. \s*
  6671. \s
  6672. Ket
  6673. End
  6674. ------------------------------------------------------------------
  6675. /\s*\S/BZ
  6676. ------------------------------------------------------------------
  6677. Bra
  6678. \s*+
  6679. \S
  6680. Ket
  6681. End
  6682. ------------------------------------------------------------------
  6683. /\s*\w/BZ
  6684. ------------------------------------------------------------------
  6685. Bra
  6686. \s*+
  6687. \w
  6688. Ket
  6689. End
  6690. ------------------------------------------------------------------
  6691. /\s*\W/BZ
  6692. ------------------------------------------------------------------
  6693. Bra
  6694. \s*
  6695. \W
  6696. Ket
  6697. End
  6698. ------------------------------------------------------------------
  6699. /\S*a/BZ
  6700. ------------------------------------------------------------------
  6701. Bra
  6702. \S*
  6703. a
  6704. Ket
  6705. End
  6706. ------------------------------------------------------------------
  6707. /\S*2/BZ
  6708. ------------------------------------------------------------------
  6709. Bra
  6710. \S*
  6711. 2
  6712. Ket
  6713. End
  6714. ------------------------------------------------------------------
  6715. /\S*\d/BZ
  6716. ------------------------------------------------------------------
  6717. Bra
  6718. \S*
  6719. \d
  6720. Ket
  6721. End
  6722. ------------------------------------------------------------------
  6723. /\S*\D/BZ
  6724. ------------------------------------------------------------------
  6725. Bra
  6726. \S*
  6727. \D
  6728. Ket
  6729. End
  6730. ------------------------------------------------------------------
  6731. /\S*\s/BZ
  6732. ------------------------------------------------------------------
  6733. Bra
  6734. \S*+
  6735. \s
  6736. Ket
  6737. End
  6738. ------------------------------------------------------------------
  6739. /\S*\S/BZ
  6740. ------------------------------------------------------------------
  6741. Bra
  6742. \S*
  6743. \S
  6744. Ket
  6745. End
  6746. ------------------------------------------------------------------
  6747. /\S*\w/BZ
  6748. ------------------------------------------------------------------
  6749. Bra
  6750. \S*
  6751. \w
  6752. Ket
  6753. End
  6754. ------------------------------------------------------------------
  6755. /\S*\W/BZ
  6756. ------------------------------------------------------------------
  6757. Bra
  6758. \S*
  6759. \W
  6760. Ket
  6761. End
  6762. ------------------------------------------------------------------
  6763. /\w*a/BZ
  6764. ------------------------------------------------------------------
  6765. Bra
  6766. \w*
  6767. a
  6768. Ket
  6769. End
  6770. ------------------------------------------------------------------
  6771. /\w*2/BZ
  6772. ------------------------------------------------------------------
  6773. Bra
  6774. \w*
  6775. 2
  6776. Ket
  6777. End
  6778. ------------------------------------------------------------------
  6779. /\w*\d/BZ
  6780. ------------------------------------------------------------------
  6781. Bra
  6782. \w*
  6783. \d
  6784. Ket
  6785. End
  6786. ------------------------------------------------------------------
  6787. /\w*\D/BZ
  6788. ------------------------------------------------------------------
  6789. Bra
  6790. \w*
  6791. \D
  6792. Ket
  6793. End
  6794. ------------------------------------------------------------------
  6795. /\w*\s/BZ
  6796. ------------------------------------------------------------------
  6797. Bra
  6798. \w*+
  6799. \s
  6800. Ket
  6801. End
  6802. ------------------------------------------------------------------
  6803. /\w*\S/BZ
  6804. ------------------------------------------------------------------
  6805. Bra
  6806. \w*
  6807. \S
  6808. Ket
  6809. End
  6810. ------------------------------------------------------------------
  6811. /\w*\w/BZ
  6812. ------------------------------------------------------------------
  6813. Bra
  6814. \w*
  6815. \w
  6816. Ket
  6817. End
  6818. ------------------------------------------------------------------
  6819. /\w*\W/BZ
  6820. ------------------------------------------------------------------
  6821. Bra
  6822. \w*+
  6823. \W
  6824. Ket
  6825. End
  6826. ------------------------------------------------------------------
  6827. /\W*a/BZ
  6828. ------------------------------------------------------------------
  6829. Bra
  6830. \W*+
  6831. a
  6832. Ket
  6833. End
  6834. ------------------------------------------------------------------
  6835. /\W*2/BZ
  6836. ------------------------------------------------------------------
  6837. Bra
  6838. \W*+
  6839. 2
  6840. Ket
  6841. End
  6842. ------------------------------------------------------------------
  6843. /\W*\d/BZ
  6844. ------------------------------------------------------------------
  6845. Bra
  6846. \W*+
  6847. \d
  6848. Ket
  6849. End
  6850. ------------------------------------------------------------------
  6851. /\W*\D/BZ
  6852. ------------------------------------------------------------------
  6853. Bra
  6854. \W*
  6855. \D
  6856. Ket
  6857. End
  6858. ------------------------------------------------------------------
  6859. /\W*\s/BZ
  6860. ------------------------------------------------------------------
  6861. Bra
  6862. \W*
  6863. \s
  6864. Ket
  6865. End
  6866. ------------------------------------------------------------------
  6867. /\W*\S/BZ
  6868. ------------------------------------------------------------------
  6869. Bra
  6870. \W*
  6871. \S
  6872. Ket
  6873. End
  6874. ------------------------------------------------------------------
  6875. /\W*\w/BZ
  6876. ------------------------------------------------------------------
  6877. Bra
  6878. \W*+
  6879. \w
  6880. Ket
  6881. End
  6882. ------------------------------------------------------------------
  6883. /\W*\W/BZ
  6884. ------------------------------------------------------------------
  6885. Bra
  6886. \W*
  6887. \W
  6888. Ket
  6889. End
  6890. ------------------------------------------------------------------
  6891. /[^a]+a/BZ
  6892. ------------------------------------------------------------------
  6893. Bra
  6894. [^a]++
  6895. a
  6896. Ket
  6897. End
  6898. ------------------------------------------------------------------
  6899. /[^a]+a/BZi
  6900. ------------------------------------------------------------------
  6901. Bra
  6902. /i [^a]++
  6903. /i a
  6904. Ket
  6905. End
  6906. ------------------------------------------------------------------
  6907. /[^a]+A/BZi
  6908. ------------------------------------------------------------------
  6909. Bra
  6910. /i [^a]++
  6911. /i A
  6912. Ket
  6913. End
  6914. ------------------------------------------------------------------
  6915. /[^a]+b/BZ
  6916. ------------------------------------------------------------------
  6917. Bra
  6918. [^a]+
  6919. b
  6920. Ket
  6921. End
  6922. ------------------------------------------------------------------
  6923. /[^a]+\d/BZ
  6924. ------------------------------------------------------------------
  6925. Bra
  6926. [^a]+
  6927. \d
  6928. Ket
  6929. End
  6930. ------------------------------------------------------------------
  6931. /a*[^a]/BZ
  6932. ------------------------------------------------------------------
  6933. Bra
  6934. a*+
  6935. [^a]
  6936. Ket
  6937. End
  6938. ------------------------------------------------------------------
  6939. /(?P<abc>x)(?P<xyz>y)/I
  6940. Capturing subpattern count = 2
  6941. Named capturing subpatterns:
  6942. abc 1
  6943. xyz 2
  6944. No options
  6945. First char = 'x'
  6946. Need char = 'y'
  6947. xy\Cabc\Cxyz
  6948. 0: xy
  6949. 1: x
  6950. 2: y
  6951. C x (1) abc
  6952. C y (1) xyz
  6953. /(?<abc>x)(?'xyz'y)/I
  6954. Capturing subpattern count = 2
  6955. Named capturing subpatterns:
  6956. abc 1
  6957. xyz 2
  6958. No options
  6959. First char = 'x'
  6960. Need char = 'y'
  6961. xy\Cabc\Cxyz
  6962. 0: xy
  6963. 1: x
  6964. 2: y
  6965. C x (1) abc
  6966. C y (1) xyz
  6967. /(?<abc'x)(?'xyz'y)/I
  6968. Failed: syntax error in subpattern name (missing terminator) at offset 6
  6969. /(?<abc>x)(?'xyz>y)/I
  6970. Failed: syntax error in subpattern name (missing terminator) at offset 15
  6971. /(?P'abc'x)(?P<xyz>y)/I
  6972. Failed: unrecognized character after (?P at offset 3
  6973. /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
  6974. bXaX
  6975. 0: bXaX
  6976. 1: X
  6977. bXbX
  6978. 0: bX
  6979. 1: X
  6980. ** Failers
  6981. No match
  6982. aXaX
  6983. No match
  6984. aXbX
  6985. No match
  6986. /^(?P>abc)(?<abcd>xxx)/
  6987. Failed: reference to non-existent subpattern at offset 8
  6988. /^(?P>abc)(?<abc>x|y)/
  6989. xx
  6990. 0: xx
  6991. 1: x
  6992. xy
  6993. 0: xy
  6994. 1: y
  6995. yy
  6996. 0: yy
  6997. 1: y
  6998. yx
  6999. 0: yx
  7000. 1: x
  7001. /^(?P>abc)(?P<abc>x|y)/
  7002. xx
  7003. 0: xx
  7004. 1: x
  7005. xy
  7006. 0: xy
  7007. 1: y
  7008. yy
  7009. 0: yy
  7010. 1: y
  7011. yx
  7012. 0: yx
  7013. 1: x
  7014. /^((?(abc)a|b)(?<abc>x|y))+/
  7015. bxay
  7016. 0: bxay
  7017. 1: ay
  7018. 2: y
  7019. bxby
  7020. 0: bx
  7021. 1: bx
  7022. 2: x
  7023. ** Failers
  7024. No match
  7025. axby
  7026. No match
  7027. /^(((?P=abc)|X)(?<abc>x|y))+/
  7028. XxXxxx
  7029. 0: XxXxxx
  7030. 1: xx
  7031. 2: x
  7032. 3: x
  7033. XxXyyx
  7034. 0: XxXyyx
  7035. 1: yx
  7036. 2: y
  7037. 3: x
  7038. XxXyxx
  7039. 0: XxXy
  7040. 1: Xy
  7041. 2: X
  7042. 3: y
  7043. ** Failers
  7044. No match
  7045. x
  7046. No match
  7047. /^(?1)(abc)/
  7048. abcabc
  7049. 0: abcabc
  7050. 1: abc
  7051. /^(?:(?:\1|X)(a|b))+/
  7052. Xaaa
  7053. 0: Xaaa
  7054. 1: a
  7055. Xaba
  7056. 0: Xa
  7057. 1: a
  7058. /^[\E\Qa\E-\Qz\E]+/BZ
  7059. ------------------------------------------------------------------
  7060. Bra
  7061. ^
  7062. [a-z]++
  7063. Ket
  7064. End
  7065. ------------------------------------------------------------------
  7066. /^[a\Q]bc\E]/BZ
  7067. ------------------------------------------------------------------
  7068. Bra
  7069. ^
  7070. [\]a-c]
  7071. Ket
  7072. End
  7073. ------------------------------------------------------------------
  7074. /^[a-\Q\E]/BZ
  7075. ------------------------------------------------------------------
  7076. Bra
  7077. ^
  7078. [\-a]
  7079. Ket
  7080. End
  7081. ------------------------------------------------------------------
  7082. /^(?P>abc)[()](?<abc>)/BZ
  7083. ------------------------------------------------------------------
  7084. Bra
  7085. ^
  7086. Recurse
  7087. [()]
  7088. CBra 1
  7089. Ket
  7090. Ket
  7091. End
  7092. ------------------------------------------------------------------
  7093. /^((?(abc)y)[()](?P<abc>x))+/BZ
  7094. ------------------------------------------------------------------
  7095. Bra
  7096. ^
  7097. CBra 1
  7098. Cond
  7099. 2 Cond ref
  7100. y
  7101. Ket
  7102. [()]
  7103. CBra 2
  7104. x
  7105. Ket
  7106. KetRmax
  7107. Ket
  7108. End
  7109. ------------------------------------------------------------------
  7110. (xy)x
  7111. 0: (xy)x
  7112. 1: y)x
  7113. 2: x
  7114. /^(?P>abc)\Q()\E(?<abc>)/BZ
  7115. ------------------------------------------------------------------
  7116. Bra
  7117. ^
  7118. Recurse
  7119. ()
  7120. CBra 1
  7121. Ket
  7122. Ket
  7123. End
  7124. ------------------------------------------------------------------
  7125. /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
  7126. ------------------------------------------------------------------
  7127. Bra
  7128. ^
  7129. Recurse
  7130. [(\]a]
  7131. CBra 1
  7132. Ket
  7133. Ket
  7134. End
  7135. ------------------------------------------------------------------
  7136. /^(?P>abc) # this is (a comment)
  7137. (?<abc>)/BZx
  7138. ------------------------------------------------------------------
  7139. Bra
  7140. ^
  7141. Recurse
  7142. CBra 1
  7143. Ket
  7144. Ket
  7145. End
  7146. ------------------------------------------------------------------
  7147. /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
  7148. Capturing subpattern count = 4
  7149. Max back reference = 4
  7150. Named capturing subpatterns:
  7151. four 4
  7152. one 1
  7153. three 3
  7154. two 2
  7155. May match empty string
  7156. Options: anchored caseless
  7157. No first char
  7158. No need char
  7159. 1221
  7160. 0: 1221
  7161. 1: 1221
  7162. 2: 1
  7163. Satan, oscillate my metallic sonatas!
  7164. 0: Satan, oscillate my metallic sonatas!
  7165. 1: <unset>
  7166. 2: <unset>
  7167. 3: Satan, oscillate my metallic sonatas
  7168. 4: S
  7169. A man, a plan, a canal: Panama!
  7170. 0: A man, a plan, a canal: Panama!
  7171. 1: <unset>
  7172. 2: <unset>
  7173. 3: A man, a plan, a canal: Panama
  7174. 4: A
  7175. Able was I ere I saw Elba.
  7176. 0: Able was I ere I saw Elba.
  7177. 1: <unset>
  7178. 2: <unset>
  7179. 3: Able was I ere I saw Elba
  7180. 4: A
  7181. *** Failers
  7182. No match
  7183. The quick brown fox
  7184. No match
  7185. /(?=(\w+))\1:/I
  7186. Capturing subpattern count = 1
  7187. Max back reference = 1
  7188. No options
  7189. No first char
  7190. Need char = ':'
  7191. abcd:
  7192. 0: abcd:
  7193. 1: abcd
  7194. /(?=(?'abc'\w+))\k<abc>:/I
  7195. Capturing subpattern count = 1
  7196. Max back reference = 1
  7197. Named capturing subpatterns:
  7198. abc 1
  7199. No options
  7200. No first char
  7201. Need char = ':'
  7202. abcd:
  7203. 0: abcd:
  7204. 1: abcd
  7205. /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
  7206. adaa
  7207. 0: adaa
  7208. 1: a
  7209. 2: d
  7210. ** Failers
  7211. No match
  7212. addd
  7213. No match
  7214. adbb
  7215. No match
  7216. /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
  7217. bdaa
  7218. 0: bdaa
  7219. 1: b
  7220. 2: d
  7221. bdab
  7222. 0: bdab
  7223. 1: b
  7224. 2: d
  7225. ** Failers
  7226. No match
  7227. bddd
  7228. No match
  7229. /(?(<bc))/
  7230. Failed: malformed number or name after (?( at offset 6
  7231. /(?(''))/
  7232. Failed: assertion expected after (?( or (?(?C) at offset 4
  7233. /(?('R')stuff)/
  7234. Failed: reference to non-existent subpattern at offset 7
  7235. /((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x
  7236. abcabc1Xabc2XabcXabcabc
  7237. 0: abcabc1Xabc2XabcX
  7238. 1: abcabc1Xabc2XabcX
  7239. 2: abcabc1Xabc2XabcX
  7240. /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
  7241. abcabc1Xabc2XabcXabcabc
  7242. 0: abcabc1Xabc2XabcX
  7243. 1: abcabc1Xabc2XabcX
  7244. 2: abcabc1Xabc2XabcX
  7245. /(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
  7246. Failed: reference to non-existent subpattern at offset 29
  7247. /^(?(DEFINE) abc | xyz ) /x
  7248. Failed: DEFINE group contains more than one branch at offset 22
  7249. /(?(DEFINE) abc) xyz/xI
  7250. Capturing subpattern count = 0
  7251. Options: extended
  7252. First char = 'x'
  7253. Need char = 'z'
  7254. /(a|)*\d/
  7255. \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  7256. No match
  7257. \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
  7258. Matched, but too many substrings
  7259. /^a.b/<lf>
  7260. a\rb
  7261. 0: a\x0db
  7262. a\nb\<cr>
  7263. 0: a\x0ab
  7264. a\x85b\<anycrlf>
  7265. 0: a\x85b
  7266. ** Failers
  7267. No match
  7268. a\nb
  7269. No match
  7270. a\nb\<any>
  7271. No match
  7272. a\rb\<cr>
  7273. No match
  7274. a\rb\<any>
  7275. No match
  7276. a\x85b\<any>
  7277. No match
  7278. a\rb\<anycrlf>
  7279. No match
  7280. /^abc./mgx<any>
  7281. abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
  7282. 0: abc1
  7283. 0: abc2
  7284. 0: abc3
  7285. 0: abc4
  7286. 0: abc5
  7287. 0: abc6
  7288. 0: abc7
  7289. /abc.$/mgx<any>
  7290. abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
  7291. 0: abc1
  7292. 0: abc2
  7293. 0: abc3
  7294. 0: abc4
  7295. 0: abc5
  7296. 0: abc6
  7297. 0: abc9
  7298. /a/<cr><any>
  7299. /a/<any><crlf>
  7300. Failed: inconsistent NEWLINE options at offset 0
  7301. /^a\Rb/<bsr_unicode>
  7302. a\nb
  7303. 0: a\x0ab
  7304. a\rb
  7305. 0: a\x0db
  7306. a\r\nb
  7307. 0: a\x0d\x0ab
  7308. a\x0bb
  7309. 0: a\x0bb
  7310. a\x0cb
  7311. 0: a\x0cb
  7312. a\x85b
  7313. 0: a\x85b
  7314. ** Failers
  7315. No match
  7316. a\n\rb
  7317. No match
  7318. /^a\R*b/<bsr_unicode>
  7319. ab
  7320. 0: ab
  7321. a\nb
  7322. 0: a\x0ab
  7323. a\rb
  7324. 0: a\x0db
  7325. a\r\nb
  7326. 0: a\x0d\x0ab
  7327. a\x0bb
  7328. 0: a\x0bb
  7329. a\x0cb
  7330. 0: a\x0cb
  7331. a\x85b
  7332. 0: a\x85b
  7333. a\n\rb
  7334. 0: a\x0a\x0db
  7335. a\n\r\x85\x0cb
  7336. 0: a\x0a\x0d\x85\x0cb
  7337. /^a\R+b/<bsr_unicode>
  7338. a\nb
  7339. 0: a\x0ab
  7340. a\rb
  7341. 0: a\x0db
  7342. a\r\nb
  7343. 0: a\x0d\x0ab
  7344. a\x0bb
  7345. 0: a\x0bb
  7346. a\x0cb
  7347. 0: a\x0cb
  7348. a\x85b
  7349. 0: a\x85b
  7350. a\n\rb
  7351. 0: a\x0a\x0db
  7352. a\n\r\x85\x0cb
  7353. 0: a\x0a\x0d\x85\x0cb
  7354. ** Failers
  7355. No match
  7356. ab
  7357. No match
  7358. /^a\R{1,3}b/<bsr_unicode>
  7359. a\nb
  7360. 0: a\x0ab
  7361. a\n\rb
  7362. 0: a\x0a\x0db
  7363. a\n\r\x85b
  7364. 0: a\x0a\x0d\x85b
  7365. a\r\n\r\nb
  7366. 0: a\x0d\x0a\x0d\x0ab
  7367. a\r\n\r\n\r\nb
  7368. 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
  7369. a\n\r\n\rb
  7370. 0: a\x0a\x0d\x0a\x0db
  7371. a\n\n\r\nb
  7372. 0: a\x0a\x0a\x0d\x0ab
  7373. ** Failers
  7374. No match
  7375. a\n\n\n\rb
  7376. No match
  7377. a\r
  7378. No match
  7379. /^a[\R]b/<bsr_unicode>
  7380. aRb
  7381. 0: aRb
  7382. ** Failers
  7383. No match
  7384. a\nb
  7385. No match
  7386. /(?&abc)X(?<abc>P)/I
  7387. Capturing subpattern count = 1
  7388. Named capturing subpatterns:
  7389. abc 1
  7390. No options
  7391. No first char
  7392. Need char = 'P'
  7393. abcPXP123
  7394. 0: PXP
  7395. 1: P
  7396. /(?1)X(?<abc>P)/I
  7397. Capturing subpattern count = 1
  7398. Named capturing subpatterns:
  7399. abc 1
  7400. No options
  7401. No first char
  7402. Need char = 'P'
  7403. abcPXP123
  7404. 0: PXP
  7405. 1: P
  7406. /(?:a(?&abc)b)*(?<abc>x)/
  7407. 123axbaxbaxbx456
  7408. 0: axbaxbaxbx
  7409. 1: x
  7410. 123axbaxbaxb456
  7411. 0: x
  7412. 1: x
  7413. /(?:a(?&abc)b){1,5}(?<abc>x)/
  7414. 123axbaxbaxbx456
  7415. 0: axbaxbaxbx
  7416. 1: x
  7417. /(?:a(?&abc)b){2,5}(?<abc>x)/
  7418. 123axbaxbaxbx456
  7419. 0: axbaxbaxbx
  7420. 1: x
  7421. /(?:a(?&abc)b){2,}(?<abc>x)/
  7422. 123axbaxbaxbx456
  7423. 0: axbaxbaxbx
  7424. 1: x
  7425. /(abc)(?i:(?1))/
  7426. defabcabcxyz
  7427. 0: abcabc
  7428. 1: abc
  7429. DEFabcABCXYZ
  7430. No match
  7431. /(abc)(?:(?i)(?1))/
  7432. defabcabcxyz
  7433. 0: abcabc
  7434. 1: abc
  7435. DEFabcABCXYZ
  7436. No match
  7437. /^(a)\g-2/
  7438. Failed: reference to non-existent subpattern at offset 7
  7439. /^(a)\g/
  7440. Failed: a numbered reference must not be zero at offset 5
  7441. /^(a)\g{0}/
  7442. Failed: a numbered reference must not be zero at offset 8
  7443. /^(a)\g{3/
  7444. Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
  7445. /^(a)\g{aa}/
  7446. Failed: reference to non-existent subpattern at offset 9
  7447. /^a.b/<lf>
  7448. a\rb
  7449. 0: a\x0db
  7450. *** Failers
  7451. No match
  7452. a\nb
  7453. No match
  7454. /.+foo/
  7455. afoo
  7456. 0: afoo
  7457. ** Failers
  7458. No match
  7459. \r\nfoo
  7460. No match
  7461. \nfoo
  7462. No match
  7463. /.+foo/<crlf>
  7464. afoo
  7465. 0: afoo
  7466. \nfoo
  7467. 0: \x0afoo
  7468. ** Failers
  7469. No match
  7470. \r\nfoo
  7471. No match
  7472. /.+foo/<any>
  7473. afoo
  7474. 0: afoo
  7475. ** Failers
  7476. No match
  7477. \nfoo
  7478. No match
  7479. \r\nfoo
  7480. No match
  7481. /.+foo/s
  7482. afoo
  7483. 0: afoo
  7484. \r\nfoo
  7485. 0: \x0d\x0afoo
  7486. \nfoo
  7487. 0: \x0afoo
  7488. /^$/mg<any>
  7489. abc\r\rxyz
  7490. 0:
  7491. abc\n\rxyz
  7492. 0:
  7493. ** Failers
  7494. No match
  7495. abc\r\nxyz
  7496. No match
  7497. /(?m)^$/<any>g+
  7498. abc\r\n\r\n
  7499. 0:
  7500. 0+ \x0d\x0a
  7501. /(?m)^$|^\r\n/<any>g+
  7502. abc\r\n\r\n
  7503. 0:
  7504. 0+ \x0d\x0a
  7505. 0: \x0d\x0a
  7506. 0+
  7507. /(?m)$/<any>g+
  7508. abc\r\n\r\n
  7509. 0:
  7510. 0+ \x0d\x0a\x0d\x0a
  7511. 0:
  7512. 0+ \x0d\x0a
  7513. 0:
  7514. 0+
  7515. /abc.$/mgx<anycrlf>
  7516. abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
  7517. 0: abc1
  7518. 0: abc4
  7519. 0: abc5
  7520. 0: abc9
  7521. /^X/m
  7522. XABC
  7523. 0: X
  7524. ** Failers
  7525. No match
  7526. XABC\B
  7527. No match
  7528. /(ab|c)(?-1)/BZ
  7529. ------------------------------------------------------------------
  7530. Bra
  7531. CBra 1
  7532. ab
  7533. Alt
  7534. c
  7535. Ket
  7536. Recurse
  7537. Ket
  7538. End
  7539. ------------------------------------------------------------------
  7540. abc
  7541. 0: abc
  7542. 1: ab
  7543. /xy(?+1)(abc)/BZ
  7544. ------------------------------------------------------------------
  7545. Bra
  7546. xy
  7547. Recurse
  7548. CBra 1
  7549. abc
  7550. Ket
  7551. Ket
  7552. End
  7553. ------------------------------------------------------------------
  7554. xyabcabc
  7555. 0: xyabcabc
  7556. 1: abc
  7557. ** Failers
  7558. No match
  7559. xyabc
  7560. No match
  7561. /x(?-0)y/
  7562. Failed: a numbered reference must not be zero at offset 5
  7563. /x(?-1)y/
  7564. Failed: reference to non-existent subpattern at offset 5
  7565. /x(?+0)y/
  7566. Failed: a numbered reference must not be zero at offset 5
  7567. /x(?+1)y/
  7568. Failed: reference to non-existent subpattern at offset 5
  7569. /^(abc)?(?(-1)X|Y)/BZ
  7570. ------------------------------------------------------------------
  7571. Bra
  7572. ^
  7573. Brazero
  7574. CBra 1
  7575. abc
  7576. Ket
  7577. Cond
  7578. 1 Cond ref
  7579. X
  7580. Alt
  7581. Y
  7582. Ket
  7583. Ket
  7584. End
  7585. ------------------------------------------------------------------
  7586. abcX
  7587. 0: abcX
  7588. 1: abc
  7589. Y
  7590. 0: Y
  7591. ** Failers
  7592. No match
  7593. abcY
  7594. No match
  7595. /^((?(+1)X|Y)(abc))+/BZ
  7596. ------------------------------------------------------------------
  7597. Bra
  7598. ^
  7599. CBra 1
  7600. Cond
  7601. 2 Cond ref
  7602. X
  7603. Alt
  7604. Y
  7605. Ket
  7606. CBra 2
  7607. abc
  7608. Ket
  7609. KetRmax
  7610. Ket
  7611. End
  7612. ------------------------------------------------------------------
  7613. YabcXabc
  7614. 0: YabcXabc
  7615. 1: Xabc
  7616. 2: abc
  7617. YabcXabcXabc
  7618. 0: YabcXabcXabc
  7619. 1: Xabc
  7620. 2: abc
  7621. ** Failers
  7622. No match
  7623. XabcXabc
  7624. No match
  7625. /(?(-1)a)/BZ
  7626. Failed: reference to non-existent subpattern at offset 6
  7627. /((?(-1)a))/BZ
  7628. ------------------------------------------------------------------
  7629. Bra
  7630. CBra 1
  7631. Cond
  7632. 1 Cond ref
  7633. a
  7634. Ket
  7635. Ket
  7636. Ket
  7637. End
  7638. ------------------------------------------------------------------
  7639. /((?(-2)a))/BZ
  7640. Failed: reference to non-existent subpattern at offset 7
  7641. /^(?(+1)X|Y)(.)/BZ
  7642. ------------------------------------------------------------------
  7643. Bra
  7644. ^
  7645. Cond
  7646. 1 Cond ref
  7647. X
  7648. Alt
  7649. Y
  7650. Ket
  7651. CBra 1
  7652. Any
  7653. Ket
  7654. Ket
  7655. End
  7656. ------------------------------------------------------------------
  7657. Y!
  7658. 0: Y!
  7659. 1: !
  7660. /(?<A>tom|bon)-\k{A}/
  7661. tom-tom
  7662. 0: tom-tom
  7663. 1: tom
  7664. bon-bon
  7665. 0: bon-bon
  7666. 1: bon
  7667. ** Failers
  7668. No match
  7669. tom-bon
  7670. No match
  7671. /\g{A/
  7672. Failed: syntax error in subpattern name (missing terminator) at offset 4
  7673. /(?|(abc)|(xyz))/BZ
  7674. ------------------------------------------------------------------
  7675. Bra
  7676. Bra
  7677. CBra 1
  7678. abc
  7679. Ket
  7680. Alt
  7681. CBra 1
  7682. xyz
  7683. Ket
  7684. Ket
  7685. Ket
  7686. End
  7687. ------------------------------------------------------------------
  7688. >abc<
  7689. 0: abc
  7690. 1: abc
  7691. >xyz<
  7692. 0: xyz
  7693. 1: xyz
  7694. /(x)(?|(abc)|(xyz))(x)/BZ
  7695. ------------------------------------------------------------------
  7696. Bra
  7697. CBra 1
  7698. x
  7699. Ket
  7700. Bra
  7701. CBra 2
  7702. abc
  7703. Ket
  7704. Alt
  7705. CBra 2
  7706. xyz
  7707. Ket
  7708. Ket
  7709. CBra 3
  7710. x
  7711. Ket
  7712. Ket
  7713. End
  7714. ------------------------------------------------------------------
  7715. xabcx
  7716. 0: xabcx
  7717. 1: x
  7718. 2: abc
  7719. 3: x
  7720. xxyzx
  7721. 0: xxyzx
  7722. 1: x
  7723. 2: xyz
  7724. 3: x
  7725. /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
  7726. ------------------------------------------------------------------
  7727. Bra
  7728. CBra 1
  7729. x
  7730. Ket
  7731. Bra
  7732. CBra 2
  7733. abc
  7734. Ket
  7735. CBra 3
  7736. pqr
  7737. Ket
  7738. Alt
  7739. CBra 2
  7740. xyz
  7741. Ket
  7742. Ket
  7743. CBra 4
  7744. x
  7745. Ket
  7746. Ket
  7747. End
  7748. ------------------------------------------------------------------
  7749. xabcpqrx
  7750. 0: xabcpqrx
  7751. 1: x
  7752. 2: abc
  7753. 3: pqr
  7754. 4: x
  7755. xxyzx
  7756. 0: xxyzx
  7757. 1: x
  7758. 2: xyz
  7759. 3: <unset>
  7760. 4: x
  7761. /\H++X/BZ
  7762. ------------------------------------------------------------------
  7763. Bra
  7764. \H++
  7765. X
  7766. Ket
  7767. End
  7768. ------------------------------------------------------------------
  7769. ** Failers
  7770. No match
  7771. XXXX
  7772. No match
  7773. /\H+\hY/BZ
  7774. ------------------------------------------------------------------
  7775. Bra
  7776. \H++
  7777. \h
  7778. Y
  7779. Ket
  7780. End
  7781. ------------------------------------------------------------------
  7782. XXXX Y
  7783. 0: XXXX Y
  7784. /\H+ Y/BZ
  7785. ------------------------------------------------------------------
  7786. Bra
  7787. \H++
  7788. Y
  7789. Ket
  7790. End
  7791. ------------------------------------------------------------------
  7792. /\h+A/BZ
  7793. ------------------------------------------------------------------
  7794. Bra
  7795. \h++
  7796. A
  7797. Ket
  7798. End
  7799. ------------------------------------------------------------------
  7800. /\v*B/BZ
  7801. ------------------------------------------------------------------
  7802. Bra
  7803. \v*+
  7804. B
  7805. Ket
  7806. End
  7807. ------------------------------------------------------------------
  7808. /\V+\x0a/BZ
  7809. ------------------------------------------------------------------
  7810. Bra
  7811. \V++
  7812. \x0a
  7813. Ket
  7814. End
  7815. ------------------------------------------------------------------
  7816. /A+\h/BZ
  7817. ------------------------------------------------------------------
  7818. Bra
  7819. A++
  7820. \h
  7821. Ket
  7822. End
  7823. ------------------------------------------------------------------
  7824. / *\H/BZ
  7825. ------------------------------------------------------------------
  7826. Bra
  7827. *+
  7828. \H
  7829. Ket
  7830. End
  7831. ------------------------------------------------------------------
  7832. /A*\v/BZ
  7833. ------------------------------------------------------------------
  7834. Bra
  7835. A*+
  7836. \v
  7837. Ket
  7838. End
  7839. ------------------------------------------------------------------
  7840. /\x0b*\V/BZ
  7841. ------------------------------------------------------------------
  7842. Bra
  7843. \x0b*+
  7844. \V
  7845. Ket
  7846. End
  7847. ------------------------------------------------------------------
  7848. /\d+\h/BZ
  7849. ------------------------------------------------------------------
  7850. Bra
  7851. \d++
  7852. \h
  7853. Ket
  7854. End
  7855. ------------------------------------------------------------------
  7856. /\d*\v/BZ
  7857. ------------------------------------------------------------------
  7858. Bra
  7859. \d*+
  7860. \v
  7861. Ket
  7862. End
  7863. ------------------------------------------------------------------
  7864. /S+\h\S+\v/BZ
  7865. ------------------------------------------------------------------
  7866. Bra
  7867. S++
  7868. \h
  7869. \S++
  7870. \v
  7871. Ket
  7872. End
  7873. ------------------------------------------------------------------
  7874. /\w{3,}\h\w+\v/BZ
  7875. ------------------------------------------------------------------
  7876. Bra
  7877. \w{3}
  7878. \w*+
  7879. \h
  7880. \w++
  7881. \v
  7882. Ket
  7883. End
  7884. ------------------------------------------------------------------
  7885. /\h+\d\h+\w\h+\S\h+\H/BZ
  7886. ------------------------------------------------------------------
  7887. Bra
  7888. \h++
  7889. \d
  7890. \h++
  7891. \w
  7892. \h++
  7893. \S
  7894. \h++
  7895. \H
  7896. Ket
  7897. End
  7898. ------------------------------------------------------------------
  7899. /\v+\d\v+\w\v+\S\v+\V/BZ
  7900. ------------------------------------------------------------------
  7901. Bra
  7902. \v++
  7903. \d
  7904. \v++
  7905. \w
  7906. \v++
  7907. \S
  7908. \v++
  7909. \V
  7910. Ket
  7911. End
  7912. ------------------------------------------------------------------
  7913. /\H+\h\H+\d/BZ
  7914. ------------------------------------------------------------------
  7915. Bra
  7916. \H++
  7917. \h
  7918. \H+
  7919. \d
  7920. Ket
  7921. End
  7922. ------------------------------------------------------------------
  7923. /\V+\v\V+\w/BZ
  7924. ------------------------------------------------------------------
  7925. Bra
  7926. \V++
  7927. \v
  7928. \V+
  7929. \w
  7930. Ket
  7931. End
  7932. ------------------------------------------------------------------
  7933. /\( (?: [^()]* | (?R) )* \)/x
  7934. \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
  7935. 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
  7936. /[\E]AAA/
  7937. Failed: missing terminating ] for character class at offset 7
  7938. /[\Q\E]AAA/
  7939. Failed: missing terminating ] for character class at offset 9
  7940. /[^\E]AAA/
  7941. Failed: missing terminating ] for character class at offset 8
  7942. /[^\Q\E]AAA/
  7943. Failed: missing terminating ] for character class at offset 10
  7944. /[\E^]AAA/
  7945. Failed: missing terminating ] for character class at offset 8
  7946. /[\Q\E^]AAA/
  7947. Failed: missing terminating ] for character class at offset 10
  7948. /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
  7949. ------------------------------------------------------------------
  7950. Bra
  7951. A
  7952. *PRUNE
  7953. B
  7954. *SKIP
  7955. C
  7956. *THEN
  7957. D
  7958. *COMMIT
  7959. E
  7960. *FAIL
  7961. F
  7962. *FAIL
  7963. G
  7964. *FAIL
  7965. H
  7966. *ACCEPT
  7967. I
  7968. Ket
  7969. End
  7970. ------------------------------------------------------------------
  7971. /^a+(*FAIL)/C
  7972. aaaaaa
  7973. --->aaaaaa
  7974. +0 ^ ^
  7975. +1 ^ a+
  7976. +3 ^ ^ (*FAIL)
  7977. +3 ^ ^ (*FAIL)
  7978. +3 ^ ^ (*FAIL)
  7979. +3 ^ ^ (*FAIL)
  7980. +3 ^ ^ (*FAIL)
  7981. +3 ^^ (*FAIL)
  7982. No match
  7983. /a+b?c+(*FAIL)/C
  7984. aaabccc
  7985. --->aaabccc
  7986. +0 ^ a+
  7987. +2 ^ ^ b?
  7988. +4 ^ ^ c+
  7989. +6 ^ ^ (*FAIL)
  7990. +6 ^ ^ (*FAIL)
  7991. +6 ^ ^ (*FAIL)
  7992. +0 ^ a+
  7993. +2 ^ ^ b?
  7994. +4 ^ ^ c+
  7995. +6 ^ ^ (*FAIL)
  7996. +6 ^ ^ (*FAIL)
  7997. +6 ^ ^ (*FAIL)
  7998. +0 ^ a+
  7999. +2 ^^ b?
  8000. +4 ^ ^ c+
  8001. +6 ^ ^ (*FAIL)
  8002. +6 ^ ^ (*FAIL)
  8003. +6 ^ ^ (*FAIL)
  8004. No match
  8005. /a+b?(*PRUNE)c+(*FAIL)/C
  8006. aaabccc
  8007. --->aaabccc
  8008. +0 ^ a+
  8009. +2 ^ ^ b?
  8010. +4 ^ ^ (*PRUNE)
  8011. +12 ^ ^ c+
  8012. +14 ^ ^ (*FAIL)
  8013. +14 ^ ^ (*FAIL)
  8014. +14 ^ ^ (*FAIL)
  8015. +0 ^ a+
  8016. +2 ^ ^ b?
  8017. +4 ^ ^ (*PRUNE)
  8018. +12 ^ ^ c+
  8019. +14 ^ ^ (*FAIL)
  8020. +14 ^ ^ (*FAIL)
  8021. +14 ^ ^ (*FAIL)
  8022. +0 ^ a+
  8023. +2 ^^ b?
  8024. +4 ^ ^ (*PRUNE)
  8025. +12 ^ ^ c+
  8026. +14 ^ ^ (*FAIL)
  8027. +14 ^ ^ (*FAIL)
  8028. +14 ^ ^ (*FAIL)
  8029. No match
  8030. /a+b?(*COMMIT)c+(*FAIL)/C
  8031. aaabccc
  8032. --->aaabccc
  8033. +0 ^ a+
  8034. +2 ^ ^ b?
  8035. +4 ^ ^ (*COMMIT)
  8036. +13 ^ ^ c+
  8037. +15 ^ ^ (*FAIL)
  8038. +15 ^ ^ (*FAIL)
  8039. +15 ^ ^ (*FAIL)
  8040. No match
  8041. /a+b?(*SKIP)c+(*FAIL)/C
  8042. aaabcccaaabccc
  8043. --->aaabcccaaabccc
  8044. +0 ^ a+
  8045. +2 ^ ^ b?
  8046. +4 ^ ^ (*SKIP)
  8047. +11 ^ ^ c+
  8048. +13 ^ ^ (*FAIL)
  8049. +13 ^ ^ (*FAIL)
  8050. +13 ^ ^ (*FAIL)
  8051. +0 ^ a+
  8052. +2 ^ ^ b?
  8053. +4 ^ ^ (*SKIP)
  8054. +11 ^ ^ c+
  8055. +13 ^ ^ (*FAIL)
  8056. +13 ^ ^ (*FAIL)
  8057. +13 ^ ^ (*FAIL)
  8058. No match
  8059. /a+b?(*THEN)c+(*FAIL)/C
  8060. aaabccc
  8061. --->aaabccc
  8062. +0 ^ a+
  8063. +2 ^ ^ b?
  8064. +4 ^ ^ (*THEN)
  8065. +11 ^ ^ c+
  8066. +13 ^ ^ (*FAIL)
  8067. +13 ^ ^ (*FAIL)
  8068. +13 ^ ^ (*FAIL)
  8069. +0 ^ a+
  8070. +2 ^ ^ b?
  8071. +4 ^ ^ (*THEN)
  8072. +11 ^ ^ c+
  8073. +13 ^ ^ (*FAIL)
  8074. +13 ^ ^ (*FAIL)
  8075. +13 ^ ^ (*FAIL)
  8076. +0 ^ a+
  8077. +2 ^^ b?
  8078. +4 ^ ^ (*THEN)
  8079. +11 ^ ^ c+
  8080. +13 ^ ^ (*FAIL)
  8081. +13 ^ ^ (*FAIL)
  8082. +13 ^ ^ (*FAIL)
  8083. No match
  8084. /a(*MARK)b/
  8085. Failed: (*MARK) must have an argument at offset 7
  8086. /(?i:A{1,}\6666666666)/
  8087. Failed: number is too big at offset 19
  8088. /\g6666666666/
  8089. Failed: number is too big at offset 11
  8090. /[\g6666666666]/BZ
  8091. ------------------------------------------------------------------
  8092. Bra
  8093. [6g]
  8094. Ket
  8095. End
  8096. ------------------------------------------------------------------
  8097. /(?1)\c[/
  8098. Failed: reference to non-existent subpattern at offset 3
  8099. /.+A/<crlf>
  8100. \r\nA
  8101. No match
  8102. /\nA/<crlf>
  8103. \r\nA
  8104. 0: \x0aA
  8105. /[\r\n]A/<crlf>
  8106. \r\nA
  8107. 0: \x0aA
  8108. /(\r|\n)A/<crlf>
  8109. \r\nA
  8110. 0: \x0aA
  8111. 1: \x0a
  8112. /a(*CR)b/
  8113. Failed: (*VERB) not recognized or malformed at offset 5
  8114. /(*CR)a.b/
  8115. a\nb
  8116. 0: a\x0ab
  8117. ** Failers
  8118. No match
  8119. a\rb
  8120. No match
  8121. /(*CR)a.b/<lf>
  8122. a\nb
  8123. 0: a\x0ab
  8124. ** Failers
  8125. No match
  8126. a\rb
  8127. No match
  8128. /(*LF)a.b/<CRLF>
  8129. a\rb
  8130. 0: a\x0db
  8131. ** Failers
  8132. No match
  8133. a\nb
  8134. No match
  8135. /(*CRLF)a.b/
  8136. a\rb
  8137. 0: a\x0db
  8138. a\nb
  8139. 0: a\x0ab
  8140. ** Failers
  8141. No match
  8142. a\r\nb
  8143. No match
  8144. /(*ANYCRLF)a.b/<CR>
  8145. ** Failers
  8146. No match
  8147. a\rb
  8148. No match
  8149. a\nb
  8150. No match
  8151. a\r\nb
  8152. No match
  8153. /(*ANY)a.b/<cr>
  8154. ** Failers
  8155. No match
  8156. a\rb
  8157. No match
  8158. a\nb
  8159. No match
  8160. a\r\nb
  8161. No match
  8162. a\x85b
  8163. No match
  8164. /(*ANY).*/g
  8165. abc\r\ndef
  8166. 0: abc
  8167. 0:
  8168. 0: def
  8169. 0:
  8170. /(*ANYCRLF).*/g
  8171. abc\r\ndef
  8172. 0: abc
  8173. 0:
  8174. 0: def
  8175. 0:
  8176. /(*CRLF).*/g
  8177. abc\r\ndef
  8178. 0: abc
  8179. 0:
  8180. 0: def
  8181. 0:
  8182. /a\Rb/I<bsr_anycrlf>
  8183. Capturing subpattern count = 0
  8184. Options: bsr_anycrlf
  8185. First char = 'a'
  8186. Need char = 'b'
  8187. a\rb
  8188. 0: a\x0db
  8189. a\nb
  8190. 0: a\x0ab
  8191. a\r\nb
  8192. 0: a\x0d\x0ab
  8193. ** Failers
  8194. No match
  8195. a\x85b
  8196. No match
  8197. a\x0bb
  8198. No match
  8199. /a\Rb/I<bsr_unicode>
  8200. Capturing subpattern count = 0
  8201. Options: bsr_unicode
  8202. First char = 'a'
  8203. Need char = 'b'
  8204. a\rb
  8205. 0: a\x0db
  8206. a\nb
  8207. 0: a\x0ab
  8208. a\r\nb
  8209. 0: a\x0d\x0ab
  8210. a\x85b
  8211. 0: a\x85b
  8212. a\x0bb
  8213. 0: a\x0bb
  8214. ** Failers
  8215. No match
  8216. a\x85b\<bsr_anycrlf>
  8217. No match
  8218. a\x0bb\<bsr_anycrlf>
  8219. No match
  8220. /a\R?b/I<bsr_anycrlf>
  8221. Capturing subpattern count = 0
  8222. Options: bsr_anycrlf
  8223. First char = 'a'
  8224. Need char = 'b'
  8225. a\rb
  8226. 0: a\x0db
  8227. a\nb
  8228. 0: a\x0ab
  8229. a\r\nb
  8230. 0: a\x0d\x0ab
  8231. ** Failers
  8232. No match
  8233. a\x85b
  8234. No match
  8235. a\x0bb
  8236. No match
  8237. /a\R?b/I<bsr_unicode>
  8238. Capturing subpattern count = 0
  8239. Options: bsr_unicode
  8240. First char = 'a'
  8241. Need char = 'b'
  8242. a\rb
  8243. 0: a\x0db
  8244. a\nb
  8245. 0: a\x0ab
  8246. a\r\nb
  8247. 0: a\x0d\x0ab
  8248. a\x85b
  8249. 0: a\x85b
  8250. a\x0bb
  8251. 0: a\x0bb
  8252. ** Failers
  8253. No match
  8254. a\x85b\<bsr_anycrlf>
  8255. No match
  8256. a\x0bb\<bsr_anycrlf>
  8257. No match
  8258. /a\R{2,4}b/I<bsr_anycrlf>
  8259. Capturing subpattern count = 0
  8260. Options: bsr_anycrlf
  8261. First char = 'a'
  8262. Need char = 'b'
  8263. a\r\n\nb
  8264. 0: a\x0d\x0a\x0ab
  8265. a\n\r\rb
  8266. 0: a\x0a\x0d\x0db
  8267. a\r\n\r\n\r\n\r\nb
  8268. 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
  8269. ** Failers
  8270. No match
  8271. a\x85\85b
  8272. No match
  8273. a\x0b\0bb
  8274. No match
  8275. /a\R{2,4}b/I<bsr_unicode>
  8276. Capturing subpattern count = 0
  8277. Options: bsr_unicode
  8278. First char = 'a'
  8279. Need char = 'b'
  8280. a\r\rb
  8281. 0: a\x0d\x0db
  8282. a\n\n\nb
  8283. 0: a\x0a\x0a\x0ab
  8284. a\r\n\n\r\rb
  8285. 0: a\x0d\x0a\x0a\x0d\x0db
  8286. a\x85\85b
  8287. No match
  8288. a\x0b\0bb
  8289. No match
  8290. ** Failers
  8291. No match
  8292. a\r\r\r\r\rb
  8293. No match
  8294. a\x85\85b\<bsr_anycrlf>
  8295. No match
  8296. a\x0b\0bb\<bsr_anycrlf>
  8297. No match
  8298. /(*BSR_ANYCRLF)a\Rb/I
  8299. Capturing subpattern count = 0
  8300. Options: bsr_anycrlf
  8301. First char = 'a'
  8302. Need char = 'b'
  8303. a\nb
  8304. 0: a\x0ab
  8305. a\rb
  8306. 0: a\x0db
  8307. /(*BSR_UNICODE)a\Rb/I
  8308. Capturing subpattern count = 0
  8309. Options: bsr_unicode
  8310. First char = 'a'
  8311. Need char = 'b'
  8312. a\x85b
  8313. 0: a\x85b
  8314. /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
  8315. Capturing subpattern count = 0
  8316. Options: bsr_anycrlf
  8317. Forced newline sequence: CRLF
  8318. First char = 'a'
  8319. Need char = 'b'
  8320. a\nb
  8321. 0: a\x0ab
  8322. a\rb
  8323. 0: a\x0db
  8324. /(*CRLF)(*BSR_UNICODE)a\Rb/I
  8325. Capturing subpattern count = 0
  8326. Options: bsr_unicode
  8327. Forced newline sequence: CRLF
  8328. First char = 'a'
  8329. Need char = 'b'
  8330. a\x85b
  8331. 0: a\x85b
  8332. /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
  8333. Capturing subpattern count = 0
  8334. Options: bsr_anycrlf
  8335. Forced newline sequence: CR
  8336. First char = 'a'
  8337. Need char = 'b'
  8338. /(?<a>)(?&)/
  8339. Failed: subpattern name expected at offset 9
  8340. /(?<abc>)(?&a)/
  8341. Failed: reference to non-existent subpattern at offset 12
  8342. /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
  8343. Failed: reference to non-existent subpattern at offset 32
  8344. /(?+-a)/
  8345. Failed: digit expected after (?+ at offset 3
  8346. /(?-+a)/
  8347. Failed: unrecognized character after (? or (?- at offset 3
  8348. /(?(-1))/
  8349. Failed: reference to non-existent subpattern at offset 6
  8350. /(?(+10))/
  8351. Failed: reference to non-existent subpattern at offset 7
  8352. /(?(10))/
  8353. Failed: reference to non-existent subpattern at offset 6
  8354. /(?(+2))()()/
  8355. /(?(2))()()/
  8356. /\k''/
  8357. Failed: subpattern name expected at offset 3
  8358. /\k<>/
  8359. Failed: subpattern name expected at offset 3
  8360. /\k{}/
  8361. Failed: subpattern name expected at offset 3
  8362. /\k/
  8363. Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 1
  8364. /\kabc/
  8365. Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 1
  8366. /(?P=)/
  8367. Failed: subpattern name expected at offset 4
  8368. /(?P>)/
  8369. Failed: subpattern name expected at offset 4
  8370. /(?!\w)(?R)/
  8371. Failed: recursive call could loop indefinitely at offset 9
  8372. /(?=\w)(?R)/
  8373. Failed: recursive call could loop indefinitely at offset 9
  8374. /(?<!\w)(?R)/
  8375. Failed: recursive call could loop indefinitely at offset 10
  8376. /(?<=\w)(?R)/
  8377. Failed: recursive call could loop indefinitely at offset 10
  8378. /[[:foo:]]/
  8379. Failed: unknown POSIX class name at offset 3
  8380. /[[:1234:]]/
  8381. Failed: unknown POSIX class name at offset 3
  8382. /[[:f\oo:]]/
  8383. Failed: unknown POSIX class name at offset 3
  8384. /[[: :]]/
  8385. Failed: unknown POSIX class name at offset 3
  8386. /[[:...:]]/
  8387. Failed: unknown POSIX class name at offset 3
  8388. /[[:l\ower:]]/
  8389. Failed: unknown POSIX class name at offset 3
  8390. /[[:abc\:]]/
  8391. Failed: unknown POSIX class name at offset 3
  8392. /[abc[:x\]pqr:]]/
  8393. Failed: unknown POSIX class name at offset 6
  8394. /[[:a\dz:]]/
  8395. Failed: unknown POSIX class name at offset 3
  8396. /(^(a|b\g<-1'c))/
  8397. Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
  8398. /^(?+1)(?<a>x|y){0}z/
  8399. xzxx
  8400. 0: xz
  8401. yzyy
  8402. 0: yz
  8403. ** Failers
  8404. No match
  8405. xxz
  8406. No match
  8407. /(\3)(\1)(a)/
  8408. cat
  8409. No match
  8410. /(\3)(\1)(a)/<JS>
  8411. cat
  8412. 0: a
  8413. 1:
  8414. 2:
  8415. 3: a
  8416. /TA]/
  8417. The ACTA] comes
  8418. 0: TA]
  8419. /TA]/<JS>
  8420. Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
  8421. /(?2)[]a()b](abc)/
  8422. Failed: reference to non-existent subpattern at offset 3
  8423. /(?2)[^]a()b](abc)/
  8424. Failed: reference to non-existent subpattern at offset 3
  8425. /(?1)[]a()b](abc)/
  8426. abcbabc
  8427. 0: abcbabc
  8428. 1: abc
  8429. ** Failers
  8430. No match
  8431. abcXabc
  8432. No match
  8433. /(?1)[^]a()b](abc)/
  8434. abcXabc
  8435. 0: abcXabc
  8436. 1: abc
  8437. ** Failers
  8438. No match
  8439. abcbabc
  8440. No match
  8441. /(?2)[]a()b](abc)(xyz)/
  8442. xyzbabcxyz
  8443. 0: xyzbabcxyz
  8444. 1: abc
  8445. 2: xyz
  8446. /(?&N)[]a(?<N>)](?<M>abc)/
  8447. Failed: reference to non-existent subpattern at offset 4
  8448. /(?&N)[]a(?<N>)](abc)/
  8449. Failed: reference to non-existent subpattern at offset 4
  8450. /a[]b/
  8451. Failed: missing terminating ] for character class at offset 4
  8452. /a[^]b/
  8453. Failed: missing terminating ] for character class at offset 5
  8454. /a[]b/<JS>
  8455. ** Failers
  8456. No match
  8457. ab
  8458. No match
  8459. /a[]+b/<JS>
  8460. ** Failers
  8461. No match
  8462. ab
  8463. No match
  8464. /a[]*+b/<JS>
  8465. ** Failers
  8466. No match
  8467. ab
  8468. No match
  8469. /a[^]b/<JS>
  8470. aXb
  8471. 0: aXb
  8472. a\nb
  8473. 0: a\x0ab
  8474. ** Failers
  8475. No match
  8476. ab
  8477. No match
  8478. /a[^]+b/<JS>
  8479. aXb
  8480. 0: aXb
  8481. a\nX\nXb
  8482. 0: a\x0aX\x0aXb
  8483. ** Failers
  8484. No match
  8485. ab
  8486. No match
  8487. /a(?!)b/BZ
  8488. ------------------------------------------------------------------
  8489. Bra
  8490. a
  8491. *FAIL
  8492. b
  8493. Ket
  8494. End
  8495. ------------------------------------------------------------------
  8496. /(?!)?a/BZ
  8497. ------------------------------------------------------------------
  8498. Bra
  8499. Brazero
  8500. Assert not
  8501. Ket
  8502. a
  8503. Ket
  8504. End
  8505. ------------------------------------------------------------------
  8506. ab
  8507. 0: a
  8508. /a(*FAIL)+b/
  8509. Failed: nothing to repeat at offset 8
  8510. /(abc|pqr|123){0}[xyz]/SI
  8511. Capturing subpattern count = 1
  8512. No options
  8513. No first char
  8514. No need char
  8515. Subject length lower bound = 1
  8516. Starting chars: x y z
  8517. /(?(?=.*b)b|^)/CI
  8518. Capturing subpattern count = 0
  8519. May match empty string
  8520. Options:
  8521. No first char
  8522. No need char
  8523. adc
  8524. --->adc
  8525. +0 ^ (?(?=.*b)b|^)
  8526. +2 ^ (?=.*b)
  8527. +5 ^ .*
  8528. +7 ^ ^ b
  8529. +7 ^ ^ b
  8530. +7 ^^ b
  8531. +7 ^ b
  8532. +11 ^ ^
  8533. +12 ^ )
  8534. +13 ^
  8535. 0:
  8536. abc
  8537. --->abc
  8538. +0 ^ (?(?=.*b)b|^)
  8539. +2 ^ (?=.*b)
  8540. +5 ^ .*
  8541. +7 ^ ^ b
  8542. +7 ^ ^ b
  8543. +7 ^^ b
  8544. +8 ^ ^ )
  8545. +9 ^ b
  8546. +0 ^ (?(?=.*b)b|^)
  8547. +2 ^ (?=.*b)
  8548. +5 ^ .*
  8549. +7 ^ ^ b
  8550. +7 ^^ b
  8551. +7 ^ b
  8552. +8 ^^ )
  8553. +9 ^ b
  8554. +10 ^^ |
  8555. +13 ^^
  8556. 0: b
  8557. /(?(?=b).*b|^d)/I
  8558. Capturing subpattern count = 0
  8559. No options
  8560. No first char
  8561. No need char
  8562. /(?(?=.*b).*b|^d)/I
  8563. Capturing subpattern count = 0
  8564. No options
  8565. No first char
  8566. No need char
  8567. /xyz/C
  8568. xyz
  8569. --->xyz
  8570. +0 ^ x
  8571. +1 ^^ y
  8572. +2 ^ ^ z
  8573. +3 ^ ^
  8574. 0: xyz
  8575. abcxyz
  8576. --->abcxyz
  8577. +0 ^ x
  8578. +1 ^^ y
  8579. +2 ^ ^ z
  8580. +3 ^ ^
  8581. 0: xyz
  8582. abcxyz\Y
  8583. --->abcxyz
  8584. +0 ^ x
  8585. +0 ^ x
  8586. +0 ^ x
  8587. +0 ^ x
  8588. +1 ^^ y
  8589. +2 ^ ^ z
  8590. +3 ^ ^
  8591. 0: xyz
  8592. ** Failers
  8593. No match
  8594. abc
  8595. No match
  8596. abc\Y
  8597. --->abc
  8598. +0 ^ x
  8599. +0 ^ x
  8600. +0 ^ x
  8601. +0 ^ x
  8602. No match
  8603. abcxypqr
  8604. No match
  8605. abcxypqr\Y
  8606. --->abcxypqr
  8607. +0 ^ x
  8608. +0 ^ x
  8609. +0 ^ x
  8610. +0 ^ x
  8611. +1 ^^ y
  8612. +2 ^ ^ z
  8613. +0 ^ x
  8614. +0 ^ x
  8615. +0 ^ x
  8616. +0 ^ x
  8617. +0 ^ x
  8618. No match
  8619. /(*NO_START_OPT)xyz/C
  8620. abcxyz
  8621. --->abcxyz
  8622. +15 ^ x
  8623. +15 ^ x
  8624. +15 ^ x
  8625. +15 ^ x
  8626. +16 ^^ y
  8627. +17 ^ ^ z
  8628. +18 ^ ^
  8629. 0: xyz
  8630. /(*NO_AUTO_POSSESS)a+b/BZ
  8631. ------------------------------------------------------------------
  8632. Bra
  8633. a+
  8634. b
  8635. Ket
  8636. End
  8637. ------------------------------------------------------------------
  8638. /xyz/CY
  8639. abcxyz
  8640. --->abcxyz
  8641. +0 ^ x
  8642. +0 ^ x
  8643. +0 ^ x
  8644. +0 ^ x
  8645. +1 ^^ y
  8646. +2 ^ ^ z
  8647. +3 ^ ^
  8648. 0: xyz
  8649. /^"((?(?=[a])[^"])|b)*"$/C
  8650. "ab"
  8651. --->"ab"
  8652. +0 ^ ^
  8653. +1 ^ "
  8654. +2 ^^ ((?(?=[a])[^"])|b)*
  8655. +3 ^^ (?(?=[a])[^"])
  8656. +5 ^^ (?=[a])
  8657. +8 ^^ [a]
  8658. +11 ^ ^ )
  8659. +12 ^^ [^"]
  8660. +16 ^ ^ )
  8661. +17 ^ ^ |
  8662. +3 ^ ^ (?(?=[a])[^"])
  8663. +5 ^ ^ (?=[a])
  8664. +8 ^ ^ [a]
  8665. +17 ^ ^ |
  8666. +21 ^ ^ "
  8667. +18 ^ ^ b
  8668. +19 ^ ^ )
  8669. +3 ^ ^ (?(?=[a])[^"])
  8670. +5 ^ ^ (?=[a])
  8671. +8 ^ ^ [a]
  8672. +17 ^ ^ |
  8673. +21 ^ ^ "
  8674. +22 ^ ^ $
  8675. +23 ^ ^
  8676. 0: "ab"
  8677. 1:
  8678. /^"((?(?=[a])[^"])|b)*"$/
  8679. "ab"
  8680. 0: "ab"
  8681. 1:
  8682. /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
  8683. Failed: reference to non-existent subpattern at offset 5
  8684. /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
  8685. XYabcdY
  8686. 0: XYabcdY
  8687. 1: a
  8688. 2: b
  8689. 3: c
  8690. 4: d
  8691. 5: Y
  8692. /Xa{2,4}b/
  8693. X\P
  8694. Partial match: X
  8695. Xa\P
  8696. Partial match: Xa
  8697. Xaa\P
  8698. Partial match: Xaa
  8699. Xaaa\P
  8700. Partial match: Xaaa
  8701. Xaaaa\P
  8702. Partial match: Xaaaa
  8703. /Xa{2,4}?b/
  8704. X\P
  8705. Partial match: X
  8706. Xa\P
  8707. Partial match: Xa
  8708. Xaa\P
  8709. Partial match: Xaa
  8710. Xaaa\P
  8711. Partial match: Xaaa
  8712. Xaaaa\P
  8713. Partial match: Xaaaa
  8714. /Xa{2,4}+b/
  8715. X\P
  8716. Partial match: X
  8717. Xa\P
  8718. Partial match: Xa
  8719. Xaa\P
  8720. Partial match: Xaa
  8721. Xaaa\P
  8722. Partial match: Xaaa
  8723. Xaaaa\P
  8724. Partial match: Xaaaa
  8725. /X\d{2,4}b/
  8726. X\P
  8727. Partial match: X
  8728. X3\P
  8729. Partial match: X3
  8730. X33\P
  8731. Partial match: X33
  8732. X333\P
  8733. Partial match: X333
  8734. X3333\P
  8735. Partial match: X3333
  8736. /X\d{2,4}?b/
  8737. X\P
  8738. Partial match: X
  8739. X3\P
  8740. Partial match: X3
  8741. X33\P
  8742. Partial match: X33
  8743. X333\P
  8744. Partial match: X333
  8745. X3333\P
  8746. Partial match: X3333
  8747. /X\d{2,4}+b/
  8748. X\P
  8749. Partial match: X
  8750. X3\P
  8751. Partial match: X3
  8752. X33\P
  8753. Partial match: X33
  8754. X333\P
  8755. Partial match: X333
  8756. X3333\P
  8757. Partial match: X3333
  8758. /X\D{2,4}b/
  8759. X\P
  8760. Partial match: X
  8761. Xa\P
  8762. Partial match: Xa
  8763. Xaa\P
  8764. Partial match: Xaa
  8765. Xaaa\P
  8766. Partial match: Xaaa
  8767. Xaaaa\P
  8768. Partial match: Xaaaa
  8769. /X\D{2,4}?b/
  8770. X\P
  8771. Partial match: X
  8772. Xa\P
  8773. Partial match: Xa
  8774. Xaa\P
  8775. Partial match: Xaa
  8776. Xaaa\P
  8777. Partial match: Xaaa
  8778. Xaaaa\P
  8779. Partial match: Xaaaa
  8780. /X\D{2,4}+b/
  8781. X\P
  8782. Partial match: X
  8783. Xa\P
  8784. Partial match: Xa
  8785. Xaa\P
  8786. Partial match: Xaa
  8787. Xaaa\P
  8788. Partial match: Xaaa
  8789. Xaaaa\P
  8790. Partial match: Xaaaa
  8791. /X[abc]{2,4}b/
  8792. X\P
  8793. Partial match: X
  8794. Xa\P
  8795. Partial match: Xa
  8796. Xaa\P
  8797. Partial match: Xaa
  8798. Xaaa\P
  8799. Partial match: Xaaa
  8800. Xaaaa\P
  8801. Partial match: Xaaaa
  8802. /X[abc]{2,4}?b/
  8803. X\P
  8804. Partial match: X
  8805. Xa\P
  8806. Partial match: Xa
  8807. Xaa\P
  8808. Partial match: Xaa
  8809. Xaaa\P
  8810. Partial match: Xaaa
  8811. Xaaaa\P
  8812. Partial match: Xaaaa
  8813. /X[abc]{2,4}+b/
  8814. X\P
  8815. Partial match: X
  8816. Xa\P
  8817. Partial match: Xa
  8818. Xaa\P
  8819. Partial match: Xaa
  8820. Xaaa\P
  8821. Partial match: Xaaa
  8822. Xaaaa\P
  8823. Partial match: Xaaaa
  8824. /X[^a]{2,4}b/
  8825. X\P
  8826. Partial match: X
  8827. Xz\P
  8828. Partial match: Xz
  8829. Xzz\P
  8830. Partial match: Xzz
  8831. Xzzz\P
  8832. Partial match: Xzzz
  8833. Xzzzz\P
  8834. Partial match: Xzzzz
  8835. /X[^a]{2,4}?b/
  8836. X\P
  8837. Partial match: X
  8838. Xz\P
  8839. Partial match: Xz
  8840. Xzz\P
  8841. Partial match: Xzz
  8842. Xzzz\P
  8843. Partial match: Xzzz
  8844. Xzzzz\P
  8845. Partial match: Xzzzz
  8846. /X[^a]{2,4}+b/
  8847. X\P
  8848. Partial match: X
  8849. Xz\P
  8850. Partial match: Xz
  8851. Xzz\P
  8852. Partial match: Xzz
  8853. Xzzz\P
  8854. Partial match: Xzzz
  8855. Xzzzz\P
  8856. Partial match: Xzzzz
  8857. /(Y)X\1{2,4}b/
  8858. YX\P
  8859. Partial match: YX
  8860. YXY\P
  8861. Partial match: YXY
  8862. YXYY\P
  8863. Partial match: YXYY
  8864. YXYYY\P
  8865. Partial match: YXYYY
  8866. YXYYYY\P
  8867. Partial match: YXYYYY
  8868. /(Y)X\1{2,4}?b/
  8869. YX\P
  8870. Partial match: YX
  8871. YXY\P
  8872. Partial match: YXY
  8873. YXYY\P
  8874. Partial match: YXYY
  8875. YXYYY\P
  8876. Partial match: YXYYY
  8877. YXYYYY\P
  8878. Partial match: YXYYYY
  8879. /(Y)X\1{2,4}+b/
  8880. YX\P
  8881. Partial match: YX
  8882. YXY\P
  8883. Partial match: YXY
  8884. YXYY\P
  8885. Partial match: YXYY
  8886. YXYYY\P
  8887. Partial match: YXYYY
  8888. YXYYYY\P
  8889. Partial match: YXYYYY
  8890. /\++\KZ|\d+X|9+Y/
  8891. ++++123999\P
  8892. Partial match: 123999
  8893. ++++123999Y\P
  8894. 0: 999Y
  8895. ++++Z1234\P
  8896. 0: Z
  8897. /Z(*F)/
  8898. Z\P
  8899. No match
  8900. ZA\P
  8901. No match
  8902. /Z(?!)/
  8903. Z\P
  8904. No match
  8905. ZA\P
  8906. No match
  8907. /dog(sbody)?/
  8908. dogs\P
  8909. 0: dog
  8910. dogs\P\P
  8911. Partial match: dogs
  8912. /dog(sbody)??/
  8913. dogs\P
  8914. 0: dog
  8915. dogs\P\P
  8916. 0: dog
  8917. /dog|dogsbody/
  8918. dogs\P
  8919. 0: dog
  8920. dogs\P\P
  8921. 0: dog
  8922. /dogsbody|dog/
  8923. dogs\P
  8924. 0: dog
  8925. dogs\P\P
  8926. Partial match: dogs
  8927. /\bthe cat\b/
  8928. the cat\P
  8929. 0: the cat
  8930. the cat\P\P
  8931. Partial match: the cat
  8932. /abc/
  8933. abc\P
  8934. 0: abc
  8935. abc\P\P
  8936. 0: abc
  8937. /abc\K123/
  8938. xyzabc123pqr
  8939. 0: 123
  8940. xyzabc12\P
  8941. Partial match: abc12
  8942. xyzabc12\P\P
  8943. Partial match: abc12
  8944. /(?<=abc)123/
  8945. xyzabc123pqr
  8946. 0: 123
  8947. xyzabc12\P
  8948. Partial match at offset 6: abc12
  8949. xyzabc12\P\P
  8950. Partial match at offset 6: abc12
  8951. /\babc\b/
  8952. +++abc+++
  8953. 0: abc
  8954. +++ab\P
  8955. Partial match at offset 3: +ab
  8956. +++ab\P\P
  8957. Partial match at offset 3: +ab
  8958. /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
  8959. ------------------------------------------------------------------
  8960. Bra
  8961. Recurse
  8962. Recurse
  8963. Cond
  8964. Cond def
  8965. CBra 1
  8966. <
  8967. [^m]
  8968. [^>]
  8969. >
  8970. [^<]
  8971. Ket
  8972. CBra 2
  8973. \w*+
  8974. Ket
  8975. Ket
  8976. Ket
  8977. End
  8978. ------------------------------------------------------------------
  8979. /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
  8980. ------------------------------------------------------------------
  8981. Bra
  8982. Recurse
  8983. Recurse
  8984. Cond
  8985. Cond def
  8986. CBra 1
  8987. <
  8988. [\x00-/:-\xff] (neg)
  8989. [^>]
  8990. >
  8991. [^<]
  8992. Ket
  8993. CBra 2
  8994. \w*+
  8995. Ket
  8996. Ket
  8997. Ket
  8998. End
  8999. ------------------------------------------------------------------
  9000. /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
  9001. ------------------------------------------------------------------
  9002. Bra
  9003. CBra 1
  9004. ab
  9005. Ket
  9006. CBra 2
  9007. x
  9008. CBra 3
  9009. y
  9010. Ket
  9011. z
  9012. CBra 4
  9013. cd
  9014. Close 4
  9015. Close 2
  9016. *ACCEPT
  9017. Ket
  9018. Ket
  9019. pq
  9020. Ket
  9021. End
  9022. ------------------------------------------------------------------
  9023. /abc\K/+
  9024. abcdef
  9025. 0:
  9026. 0+ def
  9027. abcdef\N\N
  9028. 0:
  9029. 0+ def
  9030. xyzabcdef\N\N
  9031. 0:
  9032. 0+ def
  9033. ** Failers
  9034. No match
  9035. abcdef\N
  9036. No match
  9037. xyzabcdef\N
  9038. No match
  9039. /^(?:(?=abc)|abc\K)/+
  9040. abcdef
  9041. 0:
  9042. 0+ abcdef
  9043. abcdef\N\N
  9044. 0:
  9045. 0+ def
  9046. ** Failers
  9047. No match
  9048. abcdef\N
  9049. No match
  9050. /a?b?/+
  9051. xyz
  9052. 0:
  9053. 0+ xyz
  9054. xyzabc
  9055. 0:
  9056. 0+ xyzabc
  9057. xyzabc\N
  9058. 0: ab
  9059. 0+ c
  9060. xyzabc\N\N
  9061. 0:
  9062. 0+ yzabc
  9063. xyz\N\N
  9064. 0:
  9065. 0+ yz
  9066. ** Failers
  9067. 0:
  9068. 0+ ** Failers
  9069. xyz\N
  9070. No match
  9071. /^a?b?/+
  9072. xyz
  9073. 0:
  9074. 0+ xyz
  9075. xyzabc
  9076. 0:
  9077. 0+ xyzabc
  9078. ** Failers
  9079. 0:
  9080. 0+ ** Failers
  9081. xyzabc\N
  9082. No match
  9083. xyzabc\N\N
  9084. No match
  9085. xyz\N\N
  9086. No match
  9087. xyz\N
  9088. No match
  9089. /^(?<name>a|b\g<name>c)/
  9090. aaaa
  9091. 0: a
  9092. 1: a
  9093. bacxxx
  9094. 0: bac
  9095. 1: bac
  9096. bbaccxxx
  9097. 0: bbacc
  9098. 1: bbacc
  9099. bbbacccxx
  9100. 0: bbbaccc
  9101. 1: bbbaccc
  9102. /^(?<name>a|b\g'name'c)/
  9103. aaaa
  9104. 0: a
  9105. 1: a
  9106. bacxxx
  9107. 0: bac
  9108. 1: bac
  9109. bbaccxxx
  9110. 0: bbacc
  9111. 1: bbacc
  9112. bbbacccxx
  9113. 0: bbbaccc
  9114. 1: bbbaccc
  9115. /^(a|b\g<1>c)/
  9116. aaaa
  9117. 0: a
  9118. 1: a
  9119. bacxxx
  9120. 0: bac
  9121. 1: bac
  9122. bbaccxxx
  9123. 0: bbacc
  9124. 1: bbacc
  9125. bbbacccxx
  9126. 0: bbbaccc
  9127. 1: bbbaccc
  9128. /^(a|b\g'1'c)/
  9129. aaaa
  9130. 0: a
  9131. 1: a
  9132. bacxxx
  9133. 0: bac
  9134. 1: bac
  9135. bbaccxxx
  9136. 0: bbacc
  9137. 1: bbacc
  9138. bbbacccxx
  9139. 0: bbbaccc
  9140. 1: bbbaccc
  9141. /^(a|b\g'-1'c)/
  9142. aaaa
  9143. 0: a
  9144. 1: a
  9145. bacxxx
  9146. 0: bac
  9147. 1: bac
  9148. bbaccxxx
  9149. 0: bbacc
  9150. 1: bbacc
  9151. bbbacccxx
  9152. 0: bbbaccc
  9153. 1: bbbaccc
  9154. /(^(a|b\g<-1>c))/
  9155. aaaa
  9156. 0: a
  9157. 1: a
  9158. 2: a
  9159. bacxxx
  9160. 0: bac
  9161. 1: bac
  9162. 2: bac
  9163. bbaccxxx
  9164. 0: bbacc
  9165. 1: bbacc
  9166. 2: bbacc
  9167. bbbacccxx
  9168. 0: bbbaccc
  9169. 1: bbbaccc
  9170. 2: bbbaccc
  9171. /(?-i:\g<name>)(?i:(?<name>a))/
  9172. XaaX
  9173. 0: aa
  9174. 1: a
  9175. XAAX
  9176. 0: AA
  9177. 1: A
  9178. /(?i:\g<name>)(?-i:(?<name>a))/
  9179. XaaX
  9180. 0: aa
  9181. 1: a
  9182. ** Failers
  9183. No match
  9184. XAAX
  9185. No match
  9186. /(?-i:\g<+1>)(?i:(a))/
  9187. XaaX
  9188. 0: aa
  9189. 1: a
  9190. XAAX
  9191. 0: AA
  9192. 1: A
  9193. /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
  9194. /(?<n>a|b|c)\g<n>*/
  9195. abc
  9196. 0: abc
  9197. 1: a
  9198. accccbbb
  9199. 0: accccbbb
  9200. 1: a
  9201. /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
  9202. XYabcdY
  9203. 0: XYabcdY
  9204. 1: a
  9205. 2: b
  9206. 3: <unset>
  9207. 4: <unset>
  9208. 5: c
  9209. 6: d
  9210. 7: Y
  9211. /(?<=b(?1)|zzz)(a)/
  9212. xbaax
  9213. 0: a
  9214. 1: a
  9215. xzzzax
  9216. 0: a
  9217. 1: a
  9218. /(a)(?<=b\1)/
  9219. Failed: lookbehind assertion is not fixed length at offset 10
  9220. /(a)(?<=b+(?1))/
  9221. Failed: lookbehind assertion is not fixed length at offset 13
  9222. /(a+)(?<=b(?1))/
  9223. Failed: lookbehind assertion is not fixed length at offset 14
  9224. /(a(?<=b(?1)))/
  9225. Failed: lookbehind assertion is not fixed length at offset 13
  9226. /(?<=b(?1))xyz/
  9227. Failed: reference to non-existent subpattern at offset 8
  9228. /(?<=b(?1))xyz(b+)pqrstuvew/
  9229. Failed: lookbehind assertion is not fixed length at offset 26
  9230. /(a|bc)\1/SI
  9231. Capturing subpattern count = 1
  9232. Max back reference = 1
  9233. No options
  9234. No first char
  9235. No need char
  9236. Subject length lower bound = 2
  9237. Starting chars: a b
  9238. /(a|bc)\1{2,3}/SI
  9239. Capturing subpattern count = 1
  9240. Max back reference = 1
  9241. No options
  9242. No first char
  9243. No need char
  9244. Subject length lower bound = 3
  9245. Starting chars: a b
  9246. /(a|bc)(?1)/SI
  9247. Capturing subpattern count = 1
  9248. No options
  9249. No first char
  9250. No need char
  9251. Subject length lower bound = 2
  9252. Starting chars: a b
  9253. /(a|b\1)(a|b\1)/SI
  9254. Capturing subpattern count = 2
  9255. Max back reference = 1
  9256. No options
  9257. No first char
  9258. No need char
  9259. Subject length lower bound = 2
  9260. Starting chars: a b
  9261. /(a|b\1){2}/SI
  9262. Capturing subpattern count = 1
  9263. Max back reference = 1
  9264. No options
  9265. No first char
  9266. No need char
  9267. Subject length lower bound = 2
  9268. Starting chars: a b
  9269. /(a|bbbb\1)(a|bbbb\1)/SI
  9270. Capturing subpattern count = 2
  9271. Max back reference = 1
  9272. No options
  9273. No first char
  9274. No need char
  9275. Subject length lower bound = 2
  9276. Starting chars: a b
  9277. /(a|bbbb\1){2}/SI
  9278. Capturing subpattern count = 1
  9279. Max back reference = 1
  9280. No options
  9281. No first char
  9282. No need char
  9283. Subject length lower bound = 2
  9284. Starting chars: a b
  9285. /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI
  9286. Capturing subpattern count = 1
  9287. Options: anchored
  9288. No first char
  9289. Need char = ':'
  9290. Subject length lower bound = 22
  9291. No starting char list
  9292. /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
  9293. Capturing subpattern count = 11
  9294. Options: caseless dotall
  9295. First char = '<'
  9296. Need char = '>'
  9297. Subject length lower bound = 47
  9298. No starting char list
  9299. "(?>.*/)foo"SI
  9300. Capturing subpattern count = 0
  9301. No options
  9302. No first char
  9303. Need char = 'o'
  9304. Subject length lower bound = 4
  9305. No starting char list
  9306. /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /xSI
  9307. Capturing subpattern count = 0
  9308. Options: extended
  9309. No first char
  9310. Need char = '-'
  9311. Subject length lower bound = 8
  9312. No starting char list
  9313. /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
  9314. Capturing subpattern count = 1
  9315. Options: caseless
  9316. No first char
  9317. No need char
  9318. Subject length lower bound = 1
  9319. Starting chars: A B C a b c
  9320. /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
  9321. Capturing subpattern count = 0
  9322. No options
  9323. No first char
  9324. Need char = 'b'
  9325. Subject length lower bound = 41
  9326. Starting chars: c d
  9327. /<a[\s]+href[\s]*=[\s]* # find <a href=
  9328. ([\"\'])? # find single or double quote
  9329. (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
  9330. # quote, otherwise match up to next space
  9331. /isxSI
  9332. Capturing subpattern count = 3
  9333. Max back reference = 1
  9334. Options: caseless extended dotall
  9335. First char = '<'
  9336. Need char = '='
  9337. Subject length lower bound = 9
  9338. No starting char list
  9339. /^(?!:) # colon disallowed at start
  9340. (?: # start of item
  9341. (?: [0-9a-f]{1,4} | # 1-4 hex digits or
  9342. (?(1)0 | () ) ) # if null previously matched, fail; else null
  9343. : # followed by colon
  9344. ){1,7} # end item; 1-7 of them required
  9345. [0-9a-f]{1,4} $ # final hex number at end of string
  9346. (?(1)|.) # check that there was an empty component
  9347. /xiIS
  9348. Capturing subpattern count = 1
  9349. Max back reference = 1
  9350. Options: anchored caseless extended
  9351. No first char
  9352. Need char = ':'
  9353. Subject length lower bound = 2
  9354. No starting char list
  9355. /(?|(?<a>A)|(?<a>B))/I
  9356. Capturing subpattern count = 1
  9357. Named capturing subpatterns:
  9358. a 1
  9359. No options
  9360. No first char
  9361. No need char
  9362. AB\Ca
  9363. 0: A
  9364. 1: A
  9365. C A (1) a
  9366. BA\Ca
  9367. 0: B
  9368. 1: B
  9369. C B (1) a
  9370. /(?|(?<a>A)|(?<b>B))/
  9371. Failed: different names for subpatterns of the same number are not allowed at offset 15
  9372. /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
  9373. b(?<quote> (?<apostrophe>')|(?<realquote>")) )
  9374. (?('quote')[a-z]+|[0-9]+)/JIx
  9375. Capturing subpattern count = 6
  9376. Max back reference = 1
  9377. Named capturing subpatterns:
  9378. apostrophe 2
  9379. apostrophe 5
  9380. quote 1
  9381. quote 4
  9382. realquote 3
  9383. realquote 6
  9384. Options: extended dupnames
  9385. No first char
  9386. No need char
  9387. a"aaaaa
  9388. 0: a"aaaaa
  9389. 1: "
  9390. 2: <unset>
  9391. 3: "
  9392. b"aaaaa
  9393. 0: b"aaaaa
  9394. 1: <unset>
  9395. 2: <unset>
  9396. 3: <unset>
  9397. 4: "
  9398. 5: <unset>
  9399. 6: "
  9400. ** Failers
  9401. No match
  9402. b"11111
  9403. No match
  9404. a"11111
  9405. No match
  9406. /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
  9407. ------------------------------------------------------------------
  9408. Bra
  9409. ^
  9410. Bra
  9411. CBra 1
  9412. a
  9413. Ket
  9414. CBra 2
  9415. b
  9416. Ket
  9417. CBra 3
  9418. c
  9419. Ket
  9420. CBra 4
  9421. d
  9422. Ket
  9423. Alt
  9424. CBra 1
  9425. e
  9426. Ket
  9427. Ket
  9428. Cond
  9429. Cond ref <D>2
  9430. X
  9431. Alt
  9432. Y
  9433. Ket
  9434. Ket
  9435. End
  9436. ------------------------------------------------------------------
  9437. Capturing subpattern count = 4
  9438. Max back reference = 4
  9439. Named capturing subpatterns:
  9440. D 4
  9441. D 1
  9442. Options: anchored extended dupnames
  9443. No first char
  9444. No need char
  9445. abcdX
  9446. 0: abcdX
  9447. 1: a
  9448. 2: b
  9449. 3: c
  9450. 4: d
  9451. eX
  9452. 0: eX
  9453. 1: e
  9454. ** Failers
  9455. No match
  9456. abcdY
  9457. No match
  9458. ey
  9459. No match
  9460. /(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/JDZx
  9461. ------------------------------------------------------------------
  9462. Bra
  9463. CBra 1
  9464. a
  9465. Ket
  9466. CBra 2
  9467. b
  9468. Ket
  9469. CBra 3
  9470. c
  9471. Ket
  9472. CBra 4
  9473. d
  9474. Cond
  9475. Cond recurse <A>2
  9476. $
  9477. Alt
  9478. Recurse
  9479. Ket
  9480. Ket
  9481. Ket
  9482. End
  9483. ------------------------------------------------------------------
  9484. Capturing subpattern count = 4
  9485. Max back reference = 1
  9486. Named capturing subpatterns:
  9487. A 1
  9488. A 4
  9489. Options: extended dupnames
  9490. First char = 'a'
  9491. Need char = 'd'
  9492. abcdd
  9493. 0: abcdd
  9494. 1: a
  9495. 2: b
  9496. 3: c
  9497. 4: dd
  9498. ** Failers
  9499. No match
  9500. abcdde
  9501. No match
  9502. /abcd*/
  9503. xxxxabcd\P
  9504. 0: abcd
  9505. xxxxabcd\P\P
  9506. Partial match: abcd
  9507. /abcd*/i
  9508. xxxxabcd\P
  9509. 0: abcd
  9510. xxxxabcd\P\P
  9511. Partial match: abcd
  9512. XXXXABCD\P
  9513. 0: ABCD
  9514. XXXXABCD\P\P
  9515. Partial match: ABCD
  9516. /abc\d*/
  9517. xxxxabc1\P
  9518. 0: abc1
  9519. xxxxabc1\P\P
  9520. Partial match: abc1
  9521. /(a)bc\1*/
  9522. xxxxabca\P
  9523. 0: abca
  9524. 1: a
  9525. xxxxabca\P\P
  9526. Partial match: abca
  9527. /abc[de]*/
  9528. xxxxabcde\P
  9529. 0: abcde
  9530. xxxxabcde\P\P
  9531. Partial match: abcde
  9532. /-- This is not in the Perl-compatible test because Perl seems currently to be
  9533. broken and not behaving as specified in that it *does* bumpalong after
  9534. hitting (*COMMIT). --/
  9535. /(?1)(A(*COMMIT)|B)D/
  9536. ABD
  9537. 0: ABD
  9538. 1: B
  9539. XABD
  9540. 0: ABD
  9541. 1: B
  9542. BAD
  9543. 0: BAD
  9544. 1: A
  9545. ABXABD
  9546. 0: ABD
  9547. 1: B
  9548. ** Failers
  9549. No match
  9550. ABX
  9551. No match
  9552. BAXBAD
  9553. No match
  9554. /(\3)(\1)(a)/<JS>
  9555. cat
  9556. 0: a
  9557. 1:
  9558. 2:
  9559. 3: a
  9560. /(\3)(\1)(a)/SI<JS>
  9561. Capturing subpattern count = 3
  9562. Max back reference = 3
  9563. Options:
  9564. No first char
  9565. Need char = 'a'
  9566. Subject length lower bound = 1
  9567. No starting char list
  9568. cat
  9569. 0: a
  9570. 1:
  9571. 2:
  9572. 3: a
  9573. /(\3)(\1)(a)/SI
  9574. Capturing subpattern count = 3
  9575. Max back reference = 3
  9576. No options
  9577. No first char
  9578. Need char = 'a'
  9579. Subject length lower bound = 3
  9580. No starting char list
  9581. cat
  9582. No match
  9583. /i(?(DEFINE)(?<s>a))/SI
  9584. Capturing subpattern count = 1
  9585. Named capturing subpatterns:
  9586. s 1
  9587. No options
  9588. First char = 'i'
  9589. No need char
  9590. Subject length lower bound = 1
  9591. No starting char list
  9592. i
  9593. 0: i
  9594. /()i(?(1)a)/SI
  9595. Capturing subpattern count = 1
  9596. Max back reference = 1
  9597. No options
  9598. No first char
  9599. Need char = 'i'
  9600. Subject length lower bound = 1
  9601. Starting chars: i
  9602. ia
  9603. 0: ia
  9604. 1:
  9605. /(?i)a(?-i)b|c/BZ
  9606. ------------------------------------------------------------------
  9607. Bra
  9608. /i a
  9609. b
  9610. Alt
  9611. c
  9612. Ket
  9613. End
  9614. ------------------------------------------------------------------
  9615. XabX
  9616. 0: ab
  9617. XAbX
  9618. 0: Ab
  9619. CcC
  9620. 0: c
  9621. ** Failers
  9622. No match
  9623. XABX
  9624. No match
  9625. /(?i)a(?s)b|c/BZ
  9626. ------------------------------------------------------------------
  9627. Bra
  9628. /i ab
  9629. Alt
  9630. /i c
  9631. Ket
  9632. End
  9633. ------------------------------------------------------------------
  9634. /(?i)a(?s-i)b|c/BZ
  9635. ------------------------------------------------------------------
  9636. Bra
  9637. /i a
  9638. b
  9639. Alt
  9640. c
  9641. Ket
  9642. End
  9643. ------------------------------------------------------------------
  9644. /^(ab(c\1)d|x){2}$/BZ
  9645. ------------------------------------------------------------------
  9646. Bra
  9647. ^
  9648. Once
  9649. CBra 1
  9650. ab
  9651. CBra 2
  9652. c
  9653. \1
  9654. Ket
  9655. d
  9656. Alt
  9657. x
  9658. Ket
  9659. Ket
  9660. Once
  9661. CBra 1
  9662. ab
  9663. CBra 2
  9664. c
  9665. \1
  9666. Ket
  9667. d
  9668. Alt
  9669. x
  9670. Ket
  9671. Ket
  9672. $
  9673. Ket
  9674. End
  9675. ------------------------------------------------------------------
  9676. xabcxd
  9677. 0: xabcxd
  9678. 1: abcxd
  9679. 2: cx
  9680. /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
  9681. ------------------------------------------------------------------
  9682. Bra
  9683. ^
  9684. Braposzero
  9685. SBraPos
  9686. Recurse
  9687. KetRpos
  9688. Cond
  9689. Cond def
  9690. CBra 1
  9691. Any
  9692. Ket
  9693. Ket
  9694. $
  9695. Ket
  9696. End
  9697. ------------------------------------------------------------------
  9698. /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
  9699. ------------------------------------------------------------------
  9700. Bra
  9701. ^
  9702. Brazero
  9703. Once
  9704. Recurse
  9705. KetRmax
  9706. Cond
  9707. Cond def
  9708. CBra 1
  9709. Any
  9710. Ket
  9711. Ket
  9712. $
  9713. Ket
  9714. End
  9715. ------------------------------------------------------------------
  9716. / -- This one is here because Perl gives the match as "b" rather than "ab". I
  9717. believe this to be a Perl bug. --/
  9718. /(?>a\Kb)z|(ab)/
  9719. ab
  9720. 0: ab
  9721. 1: ab
  9722. /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
  9723. Failed: recursive call could loop indefinitely at offset 31
  9724. /abc(*MARK:)pqr/
  9725. Failed: (*MARK) must have an argument at offset 10
  9726. /abc(*:)pqr/
  9727. Failed: (*MARK) must have an argument at offset 6
  9728. /abc(*FAIL:123)xyz/
  9729. Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
  9730. /--- This should, and does, fail. In Perl, it does not, which I think is a
  9731. bug because replacing the B in the pattern by (B|D) does make it fail. ---/
  9732. /A(*COMMIT)B/+K
  9733. ACABX
  9734. No match
  9735. /--- These should be different, but in Perl they are not, which I think
  9736. is a bug in Perl. ---/
  9737. /A(*THEN)B|A(*THEN)C/K
  9738. AC
  9739. 0: AC
  9740. /A(*PRUNE)B|A(*PRUNE)C/K
  9741. AC
  9742. No match
  9743. /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
  9744. though PCRE does. ---/
  9745. /^A(*:A)B|^X(*:A)Y/K
  9746. ** Failers
  9747. No match
  9748. XAQQ
  9749. No match, mark = A
  9750. /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
  9751. optimizations defeat this. So does the PCRE optimization unless we disable it
  9752. with \Y. ---/
  9753. /(*COMMIT)ABC/
  9754. ABCDEFG
  9755. 0: ABC
  9756. ** Failers
  9757. No match
  9758. DEFGABC\Y
  9759. No match
  9760. /^(ab (c+(*THEN)cd) | xyz)/x
  9761. abcccd
  9762. No match
  9763. /^(ab (c+(*PRUNE)cd) | xyz)/x
  9764. abcccd
  9765. No match
  9766. /^(ab (c+(*FAIL)cd) | xyz)/x
  9767. abcccd
  9768. No match
  9769. /--- Perl gets some of these wrong ---/
  9770. /(?>.(*ACCEPT))*?5/
  9771. abcde
  9772. 0: a
  9773. /(.(*ACCEPT))*?5/
  9774. abcde
  9775. 0: a
  9776. 1: a
  9777. /(.(*ACCEPT))5/
  9778. abcde
  9779. 0: a
  9780. 1: a
  9781. /(.(*ACCEPT))*5/
  9782. abcde
  9783. 0: a
  9784. 1: a
  9785. /A\NB./BZ
  9786. ------------------------------------------------------------------
  9787. Bra
  9788. A
  9789. Any
  9790. B
  9791. Any
  9792. Ket
  9793. End
  9794. ------------------------------------------------------------------
  9795. ACBD
  9796. 0: ACBD
  9797. *** Failers
  9798. No match
  9799. A\nB
  9800. No match
  9801. ACB\n
  9802. No match
  9803. /A\NB./sBZ
  9804. ------------------------------------------------------------------
  9805. Bra
  9806. A
  9807. Any
  9808. B
  9809. AllAny
  9810. Ket
  9811. End
  9812. ------------------------------------------------------------------
  9813. ACBD
  9814. 0: ACBD
  9815. ACB\n
  9816. 0: ACB\x0a
  9817. *** Failers
  9818. No match
  9819. A\nB
  9820. No match
  9821. /A\NB/<crlf>
  9822. A\nB
  9823. 0: A\x0aB
  9824. A\rB
  9825. 0: A\x0dB
  9826. ** Failers
  9827. No match
  9828. A\r\nB
  9829. No match
  9830. /\R+b/BZ
  9831. ------------------------------------------------------------------
  9832. Bra
  9833. \R++
  9834. b
  9835. Ket
  9836. End
  9837. ------------------------------------------------------------------
  9838. /\R+\n/BZ
  9839. ------------------------------------------------------------------
  9840. Bra
  9841. \R+
  9842. \x0a
  9843. Ket
  9844. End
  9845. ------------------------------------------------------------------
  9846. /\R+\d/BZ
  9847. ------------------------------------------------------------------
  9848. Bra
  9849. \R++
  9850. \d
  9851. Ket
  9852. End
  9853. ------------------------------------------------------------------
  9854. /\d*\R/BZ
  9855. ------------------------------------------------------------------
  9856. Bra
  9857. \d*+
  9858. \R
  9859. Ket
  9860. End
  9861. ------------------------------------------------------------------
  9862. /\s*\R/BZ
  9863. ------------------------------------------------------------------
  9864. Bra
  9865. \s*
  9866. \R
  9867. Ket
  9868. End
  9869. ------------------------------------------------------------------
  9870. \x20\x0a
  9871. 0: \x0a
  9872. \x20\x0d
  9873. 0: \x0d
  9874. \x20\x0d\x0a
  9875. 0: \x0d\x0a
  9876. /\S*\R/BZ
  9877. ------------------------------------------------------------------
  9878. Bra
  9879. \S*+
  9880. \R
  9881. Ket
  9882. End
  9883. ------------------------------------------------------------------
  9884. a\x0a
  9885. 0: a\x0a
  9886. /X\h*\R/BZ
  9887. ------------------------------------------------------------------
  9888. Bra
  9889. X
  9890. \h*+
  9891. \R
  9892. Ket
  9893. End
  9894. ------------------------------------------------------------------
  9895. X\x20\x0a
  9896. 0: X \x0a
  9897. /X\H*\R/BZ
  9898. ------------------------------------------------------------------
  9899. Bra
  9900. X
  9901. \H*
  9902. \R
  9903. Ket
  9904. End
  9905. ------------------------------------------------------------------
  9906. X\x0d\x0a
  9907. 0: X\x0d\x0a
  9908. /X\H+\R/BZ
  9909. ------------------------------------------------------------------
  9910. Bra
  9911. X
  9912. \H+
  9913. \R
  9914. Ket
  9915. End
  9916. ------------------------------------------------------------------
  9917. X\x0d\x0a
  9918. 0: X\x0d\x0a
  9919. /X\H++\R/BZ
  9920. ------------------------------------------------------------------
  9921. Bra
  9922. X
  9923. \H++
  9924. \R
  9925. Ket
  9926. End
  9927. ------------------------------------------------------------------
  9928. X\x0d\x0a
  9929. No match
  9930. /(?<=abc)def/
  9931. abc\P\P
  9932. Partial match at offset 3: abc
  9933. /abc$/
  9934. abc
  9935. 0: abc
  9936. abc\P
  9937. 0: abc
  9938. abc\P\P
  9939. Partial match: abc
  9940. /abc$/m
  9941. abc
  9942. 0: abc
  9943. abc\n
  9944. 0: abc
  9945. abc\P\P
  9946. Partial match: abc
  9947. abc\n\P\P
  9948. 0: abc
  9949. abc\P
  9950. 0: abc
  9951. abc\n\P
  9952. 0: abc
  9953. /abc\z/
  9954. abc
  9955. 0: abc
  9956. abc\P
  9957. 0: abc
  9958. abc\P\P
  9959. Partial match: abc
  9960. /abc\Z/
  9961. abc
  9962. 0: abc
  9963. abc\P
  9964. 0: abc
  9965. abc\P\P
  9966. Partial match: abc
  9967. /abc\b/
  9968. abc
  9969. 0: abc
  9970. abc\P
  9971. 0: abc
  9972. abc\P\P
  9973. Partial match: abc
  9974. /abc\B/
  9975. abc
  9976. No match
  9977. abc\P
  9978. Partial match: abc
  9979. abc\P\P
  9980. Partial match: abc
  9981. /.+/
  9982. abc\>0
  9983. 0: abc
  9984. abc\>1
  9985. 0: bc
  9986. abc\>2
  9987. 0: c
  9988. abc\>3
  9989. No match
  9990. abc\>4
  9991. Error -24 (bad offset value)
  9992. abc\>-4
  9993. Error -24 (bad offset value)
  9994. /^\cģ/
  9995. Failed: \c must be followed by an ASCII character at offset 3
  9996. /(?P<abn>(?P=abn)xxx)/BZ
  9997. ------------------------------------------------------------------
  9998. Bra
  9999. Once
  10000. CBra 1
  10001. \1
  10002. xxx
  10003. Ket
  10004. Ket
  10005. Ket
  10006. End
  10007. ------------------------------------------------------------------
  10008. /(a\1z)/BZ
  10009. ------------------------------------------------------------------
  10010. Bra
  10011. Once
  10012. CBra 1
  10013. a
  10014. \1
  10015. z
  10016. Ket
  10017. Ket
  10018. Ket
  10019. End
  10020. ------------------------------------------------------------------
  10021. /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
  10022. Failed: syntax error in subpattern name (missing terminator) at offset 29
  10023. /(?P<abn>(?P=axn)xxx)/BZ
  10024. Failed: reference to non-existent subpattern at offset 15
  10025. /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
  10026. ------------------------------------------------------------------
  10027. Bra
  10028. CBra 1
  10029. \2
  10030. xxx
  10031. Ket
  10032. CBra 2
  10033. yy
  10034. Ket
  10035. Ket
  10036. End
  10037. ------------------------------------------------------------------
  10038. /-- These tests are here because Perl gets the first one wrong. --/
  10039. /(\R*)(.)/s
  10040. \r\n
  10041. 0: \x0d
  10042. 1:
  10043. 2: \x0d
  10044. \r\r\n\n\r
  10045. 0: \x0d\x0d\x0a\x0a\x0d
  10046. 1: \x0d\x0d\x0a\x0a
  10047. 2: \x0d
  10048. \r\r\n\n\r\n
  10049. 0: \x0d\x0d\x0a\x0a\x0d
  10050. 1: \x0d\x0d\x0a\x0a
  10051. 2: \x0d
  10052. /(\R)*(.)/s
  10053. \r\n
  10054. 0: \x0d
  10055. 1: <unset>
  10056. 2: \x0d
  10057. \r\r\n\n\r
  10058. 0: \x0d\x0d\x0a\x0a\x0d
  10059. 1: \x0a
  10060. 2: \x0d
  10061. \r\r\n\n\r\n
  10062. 0: \x0d\x0d\x0a\x0a\x0d
  10063. 1: \x0a
  10064. 2: \x0d
  10065. /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
  10066. \r\n
  10067. 0: \x0d
  10068. 1:
  10069. 2: \x0d
  10070. \r\r\n\n\r
  10071. 0: \x0d\x0d\x0a\x0a\x0d
  10072. 1: \x0d\x0d\x0a\x0a
  10073. 2: \x0d
  10074. \r\r\n\n\r\n
  10075. 0: \x0d\x0d\x0a\x0a\x0d
  10076. 1: \x0d\x0d\x0a\x0a
  10077. 2: \x0d
  10078. /-- --/
  10079. /^abc$/BZ
  10080. ------------------------------------------------------------------
  10081. Bra
  10082. ^
  10083. abc
  10084. $
  10085. Ket
  10086. End
  10087. ------------------------------------------------------------------
  10088. /^abc$/BZm
  10089. ------------------------------------------------------------------
  10090. Bra
  10091. /m ^
  10092. abc
  10093. /m $
  10094. Ket
  10095. End
  10096. ------------------------------------------------------------------
  10097. /^(a)*+(\w)/S
  10098. aaaaX
  10099. 0: aaaaX
  10100. 1: a
  10101. 2: X
  10102. ** Failers
  10103. No match
  10104. aaaa
  10105. No match
  10106. /^(?:a)*+(\w)/S
  10107. aaaaX
  10108. 0: aaaaX
  10109. 1: X
  10110. ** Failers
  10111. No match
  10112. aaaa
  10113. No match
  10114. /(a)++1234/SDZ
  10115. ------------------------------------------------------------------
  10116. Bra
  10117. CBraPos 1
  10118. a
  10119. KetRpos
  10120. 1234
  10121. Ket
  10122. End
  10123. ------------------------------------------------------------------
  10124. Capturing subpattern count = 1
  10125. No options
  10126. First char = 'a'
  10127. Need char = '4'
  10128. Subject length lower bound = 5
  10129. No starting char list
  10130. /([abc])++1234/SI
  10131. Capturing subpattern count = 1
  10132. No options
  10133. No first char
  10134. Need char = '4'
  10135. Subject length lower bound = 5
  10136. Starting chars: a b c
  10137. /(?<=(abc)+)X/
  10138. Failed: lookbehind assertion is not fixed length at offset 10
  10139. /(^ab)/I
  10140. Capturing subpattern count = 1
  10141. Options: anchored
  10142. No first char
  10143. No need char
  10144. /(^ab)++/I
  10145. Capturing subpattern count = 1
  10146. Options: anchored
  10147. No first char
  10148. No need char
  10149. /(^ab|^)+/I
  10150. Capturing subpattern count = 1
  10151. May match empty string
  10152. Options: anchored
  10153. No first char
  10154. No need char
  10155. /(^ab|^)++/I
  10156. Capturing subpattern count = 1
  10157. May match empty string
  10158. Options: anchored
  10159. No first char
  10160. No need char
  10161. /(?:^ab)/I
  10162. Capturing subpattern count = 0
  10163. Options: anchored
  10164. No first char
  10165. No need char
  10166. /(?:^ab)++/I
  10167. Capturing subpattern count = 0
  10168. Options: anchored
  10169. No first char
  10170. No need char
  10171. /(?:^ab|^)+/I
  10172. Capturing subpattern count = 0
  10173. May match empty string
  10174. Options: anchored
  10175. No first char
  10176. No need char
  10177. /(?:^ab|^)++/I
  10178. Capturing subpattern count = 0
  10179. May match empty string
  10180. Options: anchored
  10181. No first char
  10182. No need char
  10183. /(.*ab)/I
  10184. Capturing subpattern count = 1
  10185. No options
  10186. First char at start or follows newline
  10187. Need char = 'b'
  10188. /(.*ab)++/I
  10189. Capturing subpattern count = 1
  10190. No options
  10191. First char at start or follows newline
  10192. Need char = 'b'
  10193. /(.*ab|.*)+/I
  10194. Capturing subpattern count = 1
  10195. May match empty string
  10196. No options
  10197. First char at start or follows newline
  10198. No need char
  10199. /(.*ab|.*)++/I
  10200. Capturing subpattern count = 1
  10201. May match empty string
  10202. No options
  10203. First char at start or follows newline
  10204. No need char
  10205. /(?:.*ab)/I
  10206. Capturing subpattern count = 0
  10207. No options
  10208. First char at start or follows newline
  10209. Need char = 'b'
  10210. /(?:.*ab)++/I
  10211. Capturing subpattern count = 0
  10212. No options
  10213. First char at start or follows newline
  10214. Need char = 'b'
  10215. /(?:.*ab|.*)+/I
  10216. Capturing subpattern count = 0
  10217. May match empty string
  10218. No options
  10219. First char at start or follows newline
  10220. No need char
  10221. /(?:.*ab|.*)++/I
  10222. Capturing subpattern count = 0
  10223. May match empty string
  10224. No options
  10225. First char at start or follows newline
  10226. No need char
  10227. /(?=a)[bcd]/I
  10228. Capturing subpattern count = 0
  10229. No options
  10230. First char = 'a'
  10231. No need char
  10232. /((?=a))[bcd]/I
  10233. Capturing subpattern count = 1
  10234. No options
  10235. First char = 'a'
  10236. No need char
  10237. /((?=a))+[bcd]/I
  10238. Capturing subpattern count = 1
  10239. No options
  10240. First char = 'a'
  10241. No need char
  10242. /((?=a))++[bcd]/I
  10243. Capturing subpattern count = 1
  10244. No options
  10245. First char = 'a'
  10246. No need char
  10247. /(?=a+)[bcd]/iI
  10248. Capturing subpattern count = 0
  10249. Options: caseless
  10250. First char = 'a' (caseless)
  10251. No need char
  10252. /(?=a+?)[bcd]/iI
  10253. Capturing subpattern count = 0
  10254. Options: caseless
  10255. First char = 'a' (caseless)
  10256. No need char
  10257. /(?=a++)[bcd]/iI
  10258. Capturing subpattern count = 0
  10259. Options: caseless
  10260. First char = 'a' (caseless)
  10261. No need char
  10262. /(?=a{3})[bcd]/iI
  10263. Capturing subpattern count = 0
  10264. Options: caseless
  10265. First char = 'a' (caseless)
  10266. Need char = 'a' (caseless)
  10267. /(abc)\1+/S
  10268. /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
  10269. /(?1)(?:(b(*ACCEPT))){0}/
  10270. b
  10271. 0: b
  10272. /(?1)(?:(b(*ACCEPT))){0}c/
  10273. bc
  10274. 0: bc
  10275. ** Failers
  10276. No match
  10277. b
  10278. No match
  10279. /(?1)(?:((*ACCEPT))){0}c/
  10280. c
  10281. 0: c
  10282. c\N
  10283. 0: c
  10284. /^.*?(?(?=a)a|b(*THEN)c)/
  10285. ba
  10286. No match
  10287. /^.*?(?(?=a)a|bc)/
  10288. ba
  10289. 0: ba
  10290. /^.*?(?(?=a)a(*THEN)b|c)/
  10291. ac
  10292. No match
  10293. /^.*?(?(?=a)a(*THEN)b)c/
  10294. ac
  10295. No match
  10296. /^.*?(a(*THEN)b)c/
  10297. aabc
  10298. No match
  10299. /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
  10300. aabc
  10301. 0: aabc
  10302. /^.*?(a(*THEN)b|z)c/
  10303. aabc
  10304. 0: aabc
  10305. 1: ab
  10306. /^.*?(z|a(*THEN)b)c/
  10307. aabc
  10308. 0: aabc
  10309. 1: ab
  10310. /-- --/
  10311. /-- These studied versions are here because they are not Perl-compatible; the
  10312. studying means the mark is not seen. --/
  10313. /(*MARK:A)(*SKIP:B)(C|X)/KS
  10314. C
  10315. 0: C
  10316. 1: C
  10317. MK: A
  10318. D
  10319. No match, mark = A
  10320. /(*:A)A+(*SKIP:A)(B|Z)/KS
  10321. AAAC
  10322. No match, mark = A
  10323. /-- --/
  10324. "(?=a*(*ACCEPT)b)c"
  10325. c
  10326. 0: c
  10327. c\N
  10328. 0: c
  10329. /(?1)c(?(DEFINE)((*ACCEPT)b))/
  10330. c
  10331. 0: c
  10332. c\N
  10333. 0: c
  10334. /(?>(*ACCEPT)b)c/
  10335. c
  10336. 0:
  10337. c\N
  10338. No match
  10339. /(?:(?>(a)))+a%/++
  10340. %aa%
  10341. 0: aa%
  10342. 0+
  10343. 1: a
  10344. 1+ a%
  10345. /(a)b|ac/++SS
  10346. ac\O3
  10347. 0: ac
  10348. 0+
  10349. /(a)(b)x|abc/++
  10350. abc\O6
  10351. 0: abc
  10352. 0+
  10353. /(a)bc|(a)(b)\2/
  10354. \O3abc
  10355. Matched, but too many substrings
  10356. 0: abc
  10357. \O4abc
  10358. Matched, but too many substrings
  10359. 0: abc
  10360. /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
  10361. Capturing subpattern count = 2
  10362. No options
  10363. No first char
  10364. No need char
  10365. Subject length lower bound = 1
  10366. No starting char list
  10367. /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
  10368. Capturing subpattern count = 2
  10369. No options
  10370. No first char
  10371. No need char
  10372. Subject length lower bound = 3
  10373. Starting chars: a b
  10374. /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
  10375. Capturing subpattern count = 2
  10376. No options
  10377. No first char
  10378. No need char
  10379. Subject length lower bound = 4
  10380. Starting chars: a b
  10381. /(abc)(?1)/SI
  10382. Capturing subpattern count = 1
  10383. No options
  10384. First char = 'a'
  10385. Need char = 'c'
  10386. Subject length lower bound = 6
  10387. No starting char list
  10388. /^(?>a)++/
  10389. aa\M
  10390. Minimum match() limit = 5
  10391. Minimum match() recursion limit = 2
  10392. 0: aa
  10393. aaaaaaaaa\M
  10394. Minimum match() limit = 12
  10395. Minimum match() recursion limit = 2
  10396. 0: aaaaaaaaa
  10397. /(a)(?1)++/
  10398. aa\M
  10399. Minimum match() limit = 7
  10400. Minimum match() recursion limit = 4
  10401. 0: aa
  10402. 1: a
  10403. aaaaaaaaa\M
  10404. Minimum match() limit = 21
  10405. Minimum match() recursion limit = 4
  10406. 0: aaaaaaaaa
  10407. 1: a
  10408. /(?:(foo)|(bar)|(baz))X/SS=
  10409. bazfooX
  10410. 0: fooX
  10411. 1: foo
  10412. 2: <unset>
  10413. 3: <unset>
  10414. foobazbarX
  10415. 0: barX
  10416. 1: <unset>
  10417. 2: bar
  10418. 3: <unset>
  10419. barfooX
  10420. 0: fooX
  10421. 1: foo
  10422. 2: <unset>
  10423. 3: <unset>
  10424. bazX
  10425. 0: bazX
  10426. 1: <unset>
  10427. 2: <unset>
  10428. 3: baz
  10429. foobarbazX
  10430. 0: bazX
  10431. 1: <unset>
  10432. 2: <unset>
  10433. 3: baz
  10434. bazfooX\O0
  10435. Matched, but too many substrings
  10436. bazfooX\O2
  10437. Matched, but too many substrings
  10438. 0: fooX
  10439. bazfooX\O4
  10440. Matched, but too many substrings
  10441. 0: fooX
  10442. 1: <unset>
  10443. bazfooX\O6
  10444. Matched, but too many substrings
  10445. 0: fooX
  10446. 1: foo
  10447. 2: <unset>
  10448. bazfooX\O8
  10449. Matched, but too many substrings
  10450. 0: fooX
  10451. 1: foo
  10452. 2: <unset>
  10453. 3: <unset>
  10454. bazfooX\O10
  10455. 0: fooX
  10456. 1: foo
  10457. 2: <unset>
  10458. 3: <unset>
  10459. /(?=abc){3}abc/BZ
  10460. ------------------------------------------------------------------
  10461. Bra
  10462. Assert
  10463. abc
  10464. Ket
  10465. abc
  10466. Ket
  10467. End
  10468. ------------------------------------------------------------------
  10469. /(?=abc)+abc/BZ
  10470. ------------------------------------------------------------------
  10471. Bra
  10472. Assert
  10473. abc
  10474. Ket
  10475. abc
  10476. Ket
  10477. End
  10478. ------------------------------------------------------------------
  10479. /(?=abc)++abc/BZ
  10480. ------------------------------------------------------------------
  10481. Bra
  10482. Assert
  10483. abc
  10484. Ket
  10485. abc
  10486. Ket
  10487. End
  10488. ------------------------------------------------------------------
  10489. /(?=abc){0}xyz/BZ
  10490. ------------------------------------------------------------------
  10491. Bra
  10492. Skip zero
  10493. Assert
  10494. abc
  10495. Ket
  10496. xyz
  10497. Ket
  10498. End
  10499. ------------------------------------------------------------------
  10500. /(?=(a))?./BZ
  10501. ------------------------------------------------------------------
  10502. Bra
  10503. Brazero
  10504. Assert
  10505. CBra 1
  10506. a
  10507. Ket
  10508. Ket
  10509. Any
  10510. Ket
  10511. End
  10512. ------------------------------------------------------------------
  10513. /(?=(a))??./BZ
  10514. ------------------------------------------------------------------
  10515. Bra
  10516. Braminzero
  10517. Assert
  10518. CBra 1
  10519. a
  10520. Ket
  10521. Ket
  10522. Any
  10523. Ket
  10524. End
  10525. ------------------------------------------------------------------
  10526. /^(?=(a)){0}b(?1)/BZ
  10527. ------------------------------------------------------------------
  10528. Bra
  10529. ^
  10530. Skip zero
  10531. Assert
  10532. CBra 1
  10533. a
  10534. Ket
  10535. Ket
  10536. b
  10537. Recurse
  10538. Ket
  10539. End
  10540. ------------------------------------------------------------------
  10541. /(?(DEFINE)(a))?b(?1)/BZ
  10542. ------------------------------------------------------------------
  10543. Bra
  10544. Cond
  10545. Cond def
  10546. CBra 1
  10547. a
  10548. Ket
  10549. Ket
  10550. b
  10551. Recurse
  10552. Ket
  10553. End
  10554. ------------------------------------------------------------------
  10555. /^(?=(?1))?[az]([abc])d/BZ
  10556. ------------------------------------------------------------------
  10557. Bra
  10558. ^
  10559. Brazero
  10560. Assert
  10561. Recurse
  10562. Ket
  10563. [az]
  10564. CBra 1
  10565. [a-c]
  10566. Ket
  10567. d
  10568. Ket
  10569. End
  10570. ------------------------------------------------------------------
  10571. /^(?!a){0}\w+/BZ
  10572. ------------------------------------------------------------------
  10573. Bra
  10574. ^
  10575. Skip zero
  10576. Assert not
  10577. a
  10578. Ket
  10579. \w++
  10580. Ket
  10581. End
  10582. ------------------------------------------------------------------
  10583. /(?<=(abc))?xyz/BZ
  10584. ------------------------------------------------------------------
  10585. Bra
  10586. Brazero
  10587. AssertB
  10588. Reverse
  10589. CBra 1
  10590. abc
  10591. Ket
  10592. Ket
  10593. xyz
  10594. Ket
  10595. End
  10596. ------------------------------------------------------------------
  10597. /[:a[:abc]b:]/BZ
  10598. ------------------------------------------------------------------
  10599. Bra
  10600. [:[a-c]
  10601. b:]
  10602. Ket
  10603. End
  10604. ------------------------------------------------------------------
  10605. /((?2))((?1))/SS
  10606. abc
  10607. Error -26 (nested recursion at the same subject position)
  10608. /((?(R2)a+|(?1)b))/SS
  10609. aaaabcde
  10610. Error -26 (nested recursion at the same subject position)
  10611. /(?(R)a*(?1)|((?R))b)/SS
  10612. aaaabcde
  10613. Error -26 (nested recursion at the same subject position)
  10614. /(a+|(?R)b)/
  10615. Failed: recursive call could loop indefinitely at offset 7
  10616. /^(a(*:A)(d|e(*:B))z|aeq)/C
  10617. adz
  10618. --->adz
  10619. +0 ^ ^
  10620. +1 ^ (a(*:A)(d|e(*:B))z|aeq)
  10621. +2 ^ a
  10622. +3 ^^ (*:A)
  10623. +8 ^^ (d|e(*:B))
  10624. Latest Mark: A
  10625. +9 ^^ d
  10626. +10 ^ ^ |
  10627. +18 ^ ^ z
  10628. +19 ^ ^ |
  10629. +24 ^ ^
  10630. 0: adz
  10631. 1: adz
  10632. 2: d
  10633. aez
  10634. --->aez
  10635. +0 ^ ^
  10636. +1 ^ (a(*:A)(d|e(*:B))z|aeq)
  10637. +2 ^ a
  10638. +3 ^^ (*:A)
  10639. +8 ^^ (d|e(*:B))
  10640. Latest Mark: A
  10641. +9 ^^ d
  10642. +11 ^^ e
  10643. +12 ^ ^ (*:B)
  10644. +17 ^ ^ )
  10645. Latest Mark: B
  10646. +18 ^ ^ z
  10647. +19 ^ ^ |
  10648. +24 ^ ^
  10649. 0: aez
  10650. 1: aez
  10651. 2: e
  10652. aeqwerty
  10653. --->aeqwerty
  10654. +0 ^ ^
  10655. +1 ^ (a(*:A)(d|e(*:B))z|aeq)
  10656. +2 ^ a
  10657. +3 ^^ (*:A)
  10658. +8 ^^ (d|e(*:B))
  10659. Latest Mark: A
  10660. +9 ^^ d
  10661. +11 ^^ e
  10662. +12 ^ ^ (*:B)
  10663. +17 ^ ^ )
  10664. Latest Mark: B
  10665. +18 ^ ^ z
  10666. +20 ^ a
  10667. +21 ^^ e
  10668. +22 ^ ^ q
  10669. +23 ^ ^ )
  10670. +24 ^ ^
  10671. 0: aeq
  10672. 1: aeq
  10673. /.(*F)/
  10674. \P\Pabc
  10675. No match
  10676. /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
  10677. Capturing subpattern count = 0
  10678. Max lookbehind = 1
  10679. No options
  10680. First char = 't'
  10681. Need char = 't'
  10682. Subject length lower bound = 18
  10683. No starting char list
  10684. /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
  10685. Capturing subpattern count = 0
  10686. Max lookbehind = 1
  10687. No options
  10688. No first char
  10689. No need char
  10690. Subject length lower bound = 8
  10691. Starting chars: < o t u
  10692. /a(*SKIP)c|b(*ACCEPT)|/+S!I
  10693. Capturing subpattern count = 0
  10694. May match empty string
  10695. No options
  10696. No first char
  10697. No need char
  10698. Subject length lower bound = -1
  10699. No starting char list
  10700. a
  10701. 0:
  10702. 0+
  10703. /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
  10704. Capturing subpattern count = 0
  10705. No options
  10706. No first char
  10707. No need char
  10708. Subject length lower bound = -1
  10709. Starting chars: a b x
  10710. ax
  10711. 0: x
  10712. 'a*(*ACCEPT)b'+
  10713. \N\N
  10714. No match
  10715. abc\N\N
  10716. 0: a
  10717. 0+ bc
  10718. bbb\N\N
  10719. 0:
  10720. 0+ bb
  10721. /(*ACCEPT)a/+I
  10722. Capturing subpattern count = 0
  10723. No options
  10724. No first char
  10725. No need char
  10726. bax
  10727. 0:
  10728. 0+ bax
  10729. /z(*ACCEPT)a/+I
  10730. Capturing subpattern count = 0
  10731. No options
  10732. First char = 'z'
  10733. No need char
  10734. baxzbx
  10735. 0: z
  10736. 0+ bx
  10737. /a(?:.)*?a/ims
  10738. \Mabbbbbbbbbbbbbbbbbbbbba
  10739. Minimum match() limit = 65
  10740. Minimum match() recursion limit = 2
  10741. 0: abbbbbbbbbbbbbbbbbbbbba
  10742. /a(?:.(*THEN))*?a/ims
  10743. \Mabbbbbbbbbbbbbbbbbbbbba
  10744. Minimum match() limit = 86
  10745. Minimum match() recursion limit = 45
  10746. 0: abbbbbbbbbbbbbbbbbbbbba
  10747. /a(?:.(*THEN:ABC))*?a/ims
  10748. \Mabbbbbbbbbbbbbbbbbbbbba
  10749. Minimum match() limit = 86
  10750. Minimum match() recursion limit = 45
  10751. 0: abbbbbbbbbbbbbbbbbbbbba
  10752. /^(?>a+)(?>(z+))\w/BZ
  10753. ------------------------------------------------------------------
  10754. Bra
  10755. ^
  10756. Once_NC
  10757. a++
  10758. Ket
  10759. Once
  10760. CBra 1
  10761. z++
  10762. Ket
  10763. Ket
  10764. \w
  10765. Ket
  10766. End
  10767. ------------------------------------------------------------------
  10768. aaaazzzzb
  10769. 0: aaaazzzzb
  10770. 1: zzzz
  10771. ** Failers
  10772. No match
  10773. aazz
  10774. No match
  10775. /(.)(\1|a(?2))/
  10776. bab
  10777. 0: bab
  10778. 1: b
  10779. 2: ab
  10780. /\1|(.)(?R)\1/
  10781. cbbbc
  10782. 0: cbbbc
  10783. 1: c
  10784. /(.)((?(1)c|a)|a(?2))/
  10785. baa
  10786. No match
  10787. /(?P<abn>(?P=abn)xxx)/BZ
  10788. ------------------------------------------------------------------
  10789. Bra
  10790. Once
  10791. CBra 1
  10792. \1
  10793. xxx
  10794. Ket
  10795. Ket
  10796. Ket
  10797. End
  10798. ------------------------------------------------------------------
  10799. /(a\1z)/BZ
  10800. ------------------------------------------------------------------
  10801. Bra
  10802. Once
  10803. CBra 1
  10804. a
  10805. \1
  10806. z
  10807. Ket
  10808. Ket
  10809. Ket
  10810. End
  10811. ------------------------------------------------------------------
  10812. /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
  10813. \Maabbccddee
  10814. Minimum match() limit = 7
  10815. Minimum match() recursion limit = 2
  10816. 0: aabbccddee
  10817. /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
  10818. \Maabbccddee
  10819. Minimum match() limit = 17
  10820. Minimum match() recursion limit = 16
  10821. 0: aabbccddee
  10822. 1: aa
  10823. 2: bb
  10824. 3: cc
  10825. 4: dd
  10826. 5: ee
  10827. /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
  10828. \Maabbccddee
  10829. Minimum match() limit = 13
  10830. Minimum match() recursion limit = 10
  10831. 0: aabbccddee
  10832. 1: aa
  10833. 2: cc
  10834. 3: ee
  10835. /^a\x41z/<JS>
  10836. aAz
  10837. 0: aAz
  10838. *** Failers
  10839. No match
  10840. ax41z
  10841. No match
  10842. /^a[m\x41]z/<JS>
  10843. aAz
  10844. 0: aAz
  10845. /^a\x1z/<JS>
  10846. ax1z
  10847. 0: ax1z
  10848. /^a\u0041z/<JS>
  10849. aAz
  10850. 0: aAz
  10851. *** Failers
  10852. No match
  10853. au0041z
  10854. No match
  10855. /^a[m\u0041]z/<JS>
  10856. aAz
  10857. 0: aAz
  10858. /^a\u041z/<JS>
  10859. au041z
  10860. 0: au041z
  10861. *** Failers
  10862. No match
  10863. aAz
  10864. No match
  10865. /^a\U0041z/<JS>
  10866. aU0041z
  10867. 0: aU0041z
  10868. *** Failers
  10869. No match
  10870. aAz
  10871. No match
  10872. /(?(?=c)c|d)++Y/BZ
  10873. ------------------------------------------------------------------
  10874. Bra
  10875. BraPos
  10876. Cond
  10877. Assert
  10878. c
  10879. Ket
  10880. c
  10881. Alt
  10882. d
  10883. Ket
  10884. KetRpos
  10885. Y
  10886. Ket
  10887. End
  10888. ------------------------------------------------------------------
  10889. /(?(?=c)c|d)*+Y/BZ
  10890. ------------------------------------------------------------------
  10891. Bra
  10892. Braposzero
  10893. BraPos
  10894. Cond
  10895. Assert
  10896. c
  10897. Ket
  10898. c
  10899. Alt
  10900. d
  10901. Ket
  10902. KetRpos
  10903. Y
  10904. Ket
  10905. End
  10906. ------------------------------------------------------------------
  10907. /a[\NB]c/
  10908. Failed: \N is not supported in a class at offset 3
  10909. /a[B-\Nc]/
  10910. Failed: invalid range in character class at offset 5
  10911. /a[B\Nc]/
  10912. Failed: \N is not supported in a class at offset 4
  10913. /(a)(?2){0,1999}?(b)/
  10914. /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
  10915. /--- This test, with something more complicated than individual letters, causes
  10916. different behaviour in Perl. Perhaps it disables some optimization; no tag is
  10917. passed back for the failures, whereas in PCRE there is a tag. ---/
  10918. /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
  10919. AABC
  10920. 0: AB
  10921. 1: A
  10922. 2: B
  10923. MK: A
  10924. XXYZ
  10925. 0: XXY
  10926. 1: <unset>
  10927. 2: <unset>
  10928. 3: X
  10929. 4: X
  10930. 5: Y
  10931. MK: B
  10932. ** Failers
  10933. No match
  10934. XAQQ
  10935. No match, mark = A
  10936. XAQQXZZ
  10937. No match, mark = A
  10938. AXQQQ
  10939. No match, mark = A
  10940. AXXQQQ
  10941. No match, mark = B
  10942. /-- Perl doesn't give marks for these, though it does if the alternatives are
  10943. replaced by single letters. --/
  10944. /(b|q)(*:m)f|a(*:n)w/K
  10945. aw
  10946. 0: aw
  10947. MK: n
  10948. ** Failers
  10949. No match, mark = n
  10950. abc
  10951. No match, mark = m
  10952. /(q|b)(*:m)f|a(*:n)w/K
  10953. aw
  10954. 0: aw
  10955. MK: n
  10956. ** Failers
  10957. No match, mark = n
  10958. abc
  10959. No match, mark = m
  10960. /-- After a partial match, the behaviour is as for a failure. --/
  10961. /^a(*:X)bcde/K
  10962. abc\P
  10963. Partial match, mark=X: abc
  10964. /-- These are here because Perl doesn't return a mark, except for the first --/
  10965. /(?=(*:x))(q|)/K+
  10966. abc
  10967. 0:
  10968. 0+ abc
  10969. 1:
  10970. MK: x
  10971. /(?=(*:x))((*:y)q|)/K+
  10972. abc
  10973. 0:
  10974. 0+ abc
  10975. 1:
  10976. MK: x
  10977. /(?=(*:x))(?:(*:y)q|)/K+
  10978. abc
  10979. 0:
  10980. 0+ abc
  10981. MK: x
  10982. /(?=(*:x))(?>(*:y)q|)/K+
  10983. abc
  10984. 0:
  10985. 0+ abc
  10986. MK: x
  10987. /(?=a(*:x))(?!a(*:y)c)/K+
  10988. ab
  10989. 0:
  10990. 0+ ab
  10991. MK: x
  10992. /(?=a(*:x))(?=a(*:y)c|)/K+
  10993. ab
  10994. 0:
  10995. 0+ ab
  10996. MK: x
  10997. /(..)\1/
  10998. ab\P
  10999. Partial match: ab
  11000. aba\P
  11001. Partial match: aba
  11002. abab\P
  11003. 0: abab
  11004. 1: ab
  11005. /(..)\1/i
  11006. ab\P
  11007. Partial match: ab
  11008. abA\P
  11009. Partial match: abA
  11010. aBAb\P
  11011. 0: aBAb
  11012. 1: aB
  11013. /(..)\1{2,}/
  11014. ab\P
  11015. Partial match: ab
  11016. aba\P
  11017. Partial match: aba
  11018. abab\P
  11019. Partial match: abab
  11020. ababa\P
  11021. Partial match: ababa
  11022. ababab\P
  11023. 0: ababab
  11024. 1: ab
  11025. ababab\P\P
  11026. Partial match: ababab
  11027. abababa\P
  11028. 0: ababab
  11029. 1: ab
  11030. abababa\P\P
  11031. Partial match: abababa
  11032. /(..)\1{2,}/i
  11033. ab\P
  11034. Partial match: ab
  11035. aBa\P
  11036. Partial match: aBa
  11037. aBAb\P
  11038. Partial match: aBAb
  11039. AbaBA\P
  11040. Partial match: AbaBA
  11041. abABAb\P
  11042. 0: abABAb
  11043. 1: ab
  11044. aBAbaB\P\P
  11045. Partial match: aBAbaB
  11046. abABabA\P
  11047. 0: abABab
  11048. 1: ab
  11049. abaBABa\P\P
  11050. Partial match: abaBABa
  11051. /(..)\1{2,}?x/i
  11052. ab\P
  11053. Partial match: ab
  11054. abA\P
  11055. Partial match: abA
  11056. aBAb\P
  11057. Partial match: aBAb
  11058. abaBA\P
  11059. Partial match: abaBA
  11060. abAbaB\P
  11061. Partial match: abAbaB
  11062. abaBabA\P
  11063. Partial match: abaBabA
  11064. abAbABaBx\P
  11065. 0: abAbABaBx
  11066. 1: ab
  11067. /^(..)\1/
  11068. aba\P
  11069. Partial match: aba
  11070. /^(..)\1{2,3}x/
  11071. aba\P
  11072. Partial match: aba
  11073. ababa\P
  11074. Partial match: ababa
  11075. ababa\P\P
  11076. Partial match: ababa
  11077. abababx
  11078. 0: abababx
  11079. 1: ab
  11080. ababababx
  11081. 0: ababababx
  11082. 1: ab
  11083. /^(..)\1{2,3}?x/
  11084. aba\P
  11085. Partial match: aba
  11086. ababa\P
  11087. Partial match: ababa
  11088. ababa\P\P
  11089. Partial match: ababa
  11090. abababx
  11091. 0: abababx
  11092. 1: ab
  11093. ababababx
  11094. 0: ababababx
  11095. 1: ab
  11096. /^(..)(\1{2,3})ab/
  11097. abababab
  11098. 0: abababab
  11099. 1: ab
  11100. 2: abab
  11101. /^\R/
  11102. \r\P
  11103. 0: \x0d
  11104. \r\P\P
  11105. Partial match: \x0d
  11106. /^\R{2,3}x/
  11107. \r\P
  11108. Partial match: \x0d
  11109. \r\P\P
  11110. Partial match: \x0d
  11111. \r\r\P
  11112. Partial match: \x0d\x0d
  11113. \r\r\P\P
  11114. Partial match: \x0d\x0d
  11115. \r\r\r\P
  11116. Partial match: \x0d\x0d\x0d
  11117. \r\r\r\P\P
  11118. Partial match: \x0d\x0d\x0d
  11119. \r\rx
  11120. 0: \x0d\x0dx
  11121. \r\r\rx
  11122. 0: \x0d\x0d\x0dx
  11123. /^\R{2,3}?x/
  11124. \r\P
  11125. Partial match: \x0d
  11126. \r\P\P
  11127. Partial match: \x0d
  11128. \r\r\P
  11129. Partial match: \x0d\x0d
  11130. \r\r\P\P
  11131. Partial match: \x0d\x0d
  11132. \r\r\r\P
  11133. Partial match: \x0d\x0d\x0d
  11134. \r\r\r\P\P
  11135. Partial match: \x0d\x0d\x0d
  11136. \r\rx
  11137. 0: \x0d\x0dx
  11138. \r\r\rx
  11139. 0: \x0d\x0d\x0dx
  11140. /^\R?x/
  11141. \r\P
  11142. Partial match: \x0d
  11143. \r\P\P
  11144. Partial match: \x0d
  11145. x
  11146. 0: x
  11147. \rx
  11148. 0: \x0dx
  11149. /^\R+x/
  11150. \r\P
  11151. Partial match: \x0d
  11152. \r\P\P
  11153. Partial match: \x0d
  11154. \r\n\P
  11155. Partial match: \x0d\x0a
  11156. \r\n\P\P
  11157. Partial match: \x0d\x0a
  11158. \rx
  11159. 0: \x0dx
  11160. /^a$/<CRLF>
  11161. a\r\P
  11162. Partial match: a\x0d
  11163. a\r\P\P
  11164. Partial match: a\x0d
  11165. /^a$/m<CRLF>
  11166. a\r\P
  11167. Partial match: a\x0d
  11168. a\r\P\P
  11169. Partial match: a\x0d
  11170. /^(a$|a\r)/<CRLF>
  11171. a\r\P
  11172. 0: a\x0d
  11173. 1: a\x0d
  11174. a\r\P\P
  11175. Partial match: a\x0d
  11176. /^(a$|a\r)/m<CRLF>
  11177. a\r\P
  11178. 0: a\x0d
  11179. 1: a\x0d
  11180. a\r\P\P
  11181. Partial match: a\x0d
  11182. /./<CRLF>
  11183. \r\P
  11184. 0: \x0d
  11185. \r\P\P
  11186. Partial match: \x0d
  11187. /.{2,3}/<CRLF>
  11188. \r\P
  11189. Partial match: \x0d
  11190. \r\P\P
  11191. Partial match: \x0d
  11192. \r\r\P
  11193. 0: \x0d\x0d
  11194. \r\r\P\P
  11195. Partial match: \x0d\x0d
  11196. \r\r\r\P
  11197. 0: \x0d\x0d\x0d
  11198. \r\r\r\P\P
  11199. Partial match: \x0d\x0d\x0d
  11200. /.{2,3}?/<CRLF>
  11201. \r\P
  11202. Partial match: \x0d
  11203. \r\P\P
  11204. Partial match: \x0d
  11205. \r\r\P
  11206. 0: \x0d\x0d
  11207. \r\r\P\P
  11208. Partial match: \x0d\x0d
  11209. \r\r\r\P
  11210. 0: \x0d\x0d
  11211. \r\r\r\P\P
  11212. 0: \x0d\x0d
  11213. "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
  11214. ABCDGHI\O03
  11215. Matched, but too many substrings
  11216. 0: ABCD
  11217. /-- These are all run as real matches in test 1; here we are just checking the
  11218. settings of the anchored and startline bits. --/
  11219. /(?>.*?a)(?<=ba)/I
  11220. Capturing subpattern count = 0
  11221. Max lookbehind = 2
  11222. No options
  11223. No first char
  11224. Need char = 'a'
  11225. /(?:.*?a)(?<=ba)/I
  11226. Capturing subpattern count = 0
  11227. Max lookbehind = 2
  11228. No options
  11229. First char at start or follows newline
  11230. Need char = 'a'
  11231. /.*?a(*PRUNE)b/I
  11232. Capturing subpattern count = 0
  11233. No options
  11234. No first char
  11235. Need char = 'b'
  11236. /.*?a(*PRUNE)b/sI
  11237. Capturing subpattern count = 0
  11238. Options: dotall
  11239. No first char
  11240. Need char = 'b'
  11241. /^a(*PRUNE)b/sI
  11242. Capturing subpattern count = 0
  11243. Options: anchored dotall
  11244. No first char
  11245. No need char
  11246. /.*?a(*SKIP)b/I
  11247. Capturing subpattern count = 0
  11248. No options
  11249. No first char
  11250. Need char = 'b'
  11251. /(?>.*?a)b/sI
  11252. Capturing subpattern count = 0
  11253. Options: dotall
  11254. No first char
  11255. Need char = 'b'
  11256. /(?>.*?a)b/I
  11257. Capturing subpattern count = 0
  11258. No options
  11259. No first char
  11260. Need char = 'b'
  11261. /(?>^a)b/sI
  11262. Capturing subpattern count = 0
  11263. Options: anchored dotall
  11264. No first char
  11265. No need char
  11266. /(?>.*?)(?<=(abcd)|(wxyz))/I
  11267. Capturing subpattern count = 2
  11268. Max lookbehind = 4
  11269. May match empty string
  11270. No options
  11271. No first char
  11272. No need char
  11273. /(?>.*)(?<=(abcd)|(wxyz))/I
  11274. Capturing subpattern count = 2
  11275. Max lookbehind = 4
  11276. May match empty string
  11277. No options
  11278. No first char
  11279. No need char
  11280. "(?>.*)foo"I
  11281. Capturing subpattern count = 0
  11282. No options
  11283. No first char
  11284. Need char = 'o'
  11285. "(?>.*?)foo"I
  11286. Capturing subpattern count = 0
  11287. No options
  11288. No first char
  11289. Need char = 'o'
  11290. /(?>^abc)/mI
  11291. Capturing subpattern count = 0
  11292. Options: multiline
  11293. First char at start or follows newline
  11294. Need char = 'c'
  11295. /(?>.*abc)/mI
  11296. Capturing subpattern count = 0
  11297. Options: multiline
  11298. No first char
  11299. Need char = 'c'
  11300. /(?:.*abc)/mI
  11301. Capturing subpattern count = 0
  11302. Options: multiline
  11303. First char at start or follows newline
  11304. Need char = 'c'
  11305. /-- Check PCRE_STUDY_EXTRA_NEEDED --/
  11306. /.?/S-I
  11307. Capturing subpattern count = 0
  11308. May match empty string
  11309. No options
  11310. No first char
  11311. No need char
  11312. Study returned NULL
  11313. /.?/S!I
  11314. Capturing subpattern count = 0
  11315. May match empty string
  11316. No options
  11317. No first char
  11318. No need char
  11319. Subject length lower bound = -1
  11320. No starting char list
  11321. /(?:(a)+(?C1)bb|aa(?C2)b)/
  11322. aab\C+
  11323. Callout 1: last capture = 1
  11324. 0: <unset>
  11325. 1: a
  11326. --->aab
  11327. ^ ^ b
  11328. Callout 1: last capture = 1
  11329. 0: <unset>
  11330. 1: a
  11331. --->aab
  11332. ^^ b
  11333. Callout 2: last capture = -1
  11334. 0: <unset>
  11335. --->aab
  11336. ^ ^ b
  11337. 0: aab
  11338. /(?:(a)++(?C1)bb|aa(?C2)b)/
  11339. aab\C+
  11340. Callout 1: last capture = 1
  11341. 0: <unset>
  11342. 1: a
  11343. --->aab
  11344. ^ ^ b
  11345. Callout 2: last capture = -1
  11346. 0: <unset>
  11347. --->aab
  11348. ^ ^ b
  11349. 0: aab
  11350. /(?:(?>(a))(?C1)bb|aa(?C2)b)/
  11351. aab\C+
  11352. Callout 1: last capture = 1
  11353. 0: <unset>
  11354. 1: a
  11355. --->aab
  11356. ^^ b
  11357. Callout 2: last capture = -1
  11358. 0: <unset>
  11359. --->aab
  11360. ^ ^ b
  11361. 0: aab
  11362. /(?:(?1)(?C1)x|ab(?C2))((a)){0}/
  11363. aab\C+
  11364. Callout 1: last capture = -1
  11365. 0: <unset>
  11366. --->aab
  11367. ^^ x
  11368. Callout 1: last capture = -1
  11369. 0: <unset>
  11370. --->aab
  11371. ^^ x
  11372. Callout 2: last capture = -1
  11373. 0: <unset>
  11374. --->aab
  11375. ^ ^ )
  11376. 0: ab
  11377. /(?1)(?C1)((a)(?C2)){0}/
  11378. aab\C+
  11379. Callout 2: last capture = 2
  11380. 0: <unset>
  11381. 1: <unset>
  11382. 2: a
  11383. --->aab
  11384. ^^ )
  11385. Callout 1: last capture = -1
  11386. 0: <unset>
  11387. --->aab
  11388. ^^ ((a)(?C2)){0}
  11389. 0: a
  11390. /(?:(a)+(?C1)bb|aa(?C2)b)++/
  11391. aab\C+
  11392. Callout 1: last capture = 1
  11393. 0: <unset>
  11394. 1: a
  11395. --->aab
  11396. ^ ^ b
  11397. Callout 1: last capture = 1
  11398. 0: <unset>
  11399. 1: a
  11400. --->aab
  11401. ^^ b
  11402. Callout 2: last capture = -1
  11403. 0: <unset>
  11404. --->aab
  11405. ^ ^ b
  11406. 0: aab
  11407. aab\C+\O2
  11408. Callout 1: last capture = 1
  11409. 0: <unset>
  11410. --->aab
  11411. ^ ^ b
  11412. Callout 1: last capture = 1
  11413. 0: <unset>
  11414. --->aab
  11415. ^^ b
  11416. Callout 2: last capture = -1
  11417. 0: <unset>
  11418. --->aab
  11419. ^ ^ b
  11420. 0: aab
  11421. /(ab)x|ab/
  11422. ab\O3
  11423. 0: ab
  11424. ab\O2
  11425. 0: ab
  11426. /(ab)/
  11427. ab\O3
  11428. Matched, but too many substrings
  11429. 0: ab
  11430. ab\O2
  11431. Matched, but too many substrings
  11432. 0: ab
  11433. /(?<=123)(*MARK:xx)abc/K
  11434. xxxx123a\P\P
  11435. Partial match at offset 7, mark=xx: 123a
  11436. xxxx123a\P
  11437. Partial match at offset 7, mark=xx: 123a
  11438. /123\Kabc/
  11439. xxxx123a\P\P
  11440. Partial match: 123a
  11441. xxxx123a\P
  11442. Partial match: 123a
  11443. /^(?(?=a)aa|bb)/C
  11444. bb
  11445. --->bb
  11446. +0 ^ ^
  11447. +1 ^ (?(?=a)aa|bb)
  11448. +3 ^ (?=a)
  11449. +6 ^ a
  11450. +11 ^ b
  11451. +12 ^^ b
  11452. +13 ^ ^ )
  11453. +14 ^ ^
  11454. 0: bb
  11455. /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
  11456. bb
  11457. --->bb
  11458. 1 ^ ^
  11459. 2 ^ (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
  11460. 99 ^ (?=(?C3)a(?C4))
  11461. 3 ^ a
  11462. 8 ^ b
  11463. 9 ^^ b
  11464. 10 ^ ^ )
  11465. 11 ^ ^
  11466. 0: bb
  11467. /-- Perl seems to have a bug with this one --/
  11468. /aaaaa(*COMMIT)(*PRUNE)b|a+c/
  11469. aaaaaac
  11470. 0: aaaac
  11471. /-- Here are some that Perl treats differently because of the way it handles
  11472. backtracking verbs. --/
  11473. /(?!a(*COMMIT)b)ac|ad/
  11474. ac
  11475. 0: ac
  11476. ad
  11477. 0: ad
  11478. /^(?!a(*THEN)b|ac)../
  11479. ac
  11480. No match
  11481. ad
  11482. 0: ad
  11483. /^(?=a(*THEN)b|ac)/
  11484. ac
  11485. 0:
  11486. /\A.*?(?:a|b(*THEN)c)/
  11487. ba
  11488. 0: ba
  11489. /\A.*?(?:a|b(*THEN)c)++/
  11490. ba
  11491. 0: ba
  11492. /\A.*?(?:a|b(*THEN)c|d)/
  11493. ba
  11494. 0: ba
  11495. /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
  11496. aac
  11497. 0: aac
  11498. /\A.*?(a|b(*THEN)c)/
  11499. ba
  11500. 0: ba
  11501. 1: a
  11502. /^(A(*THEN)B|A(*THEN)D)/
  11503. AD
  11504. 0: AD
  11505. 1: AD
  11506. /(?!b(*THEN)a)bn|bnn/
  11507. bnn
  11508. 0: bn
  11509. /(?(?=b(*SKIP)a)bn|bnn)/
  11510. bnn
  11511. No match
  11512. /(?=b(*THEN)a|)bn|bnn/
  11513. bnn
  11514. 0: bn
  11515. /-------------------------/
  11516. /(*LIMIT_MATCH=12bc)abc/
  11517. Failed: (*VERB) not recognized or malformed at offset 7
  11518. /(*LIMIT_MATCH=4294967290)abc/
  11519. Failed: (*VERB) not recognized or malformed at offset 7
  11520. /(*LIMIT_RECURSION=4294967280)abc/I
  11521. Capturing subpattern count = 0
  11522. Recursion limit = 4294967280
  11523. No options
  11524. First char = 'a'
  11525. Need char = 'c'
  11526. /(a+)*zz/
  11527. aaaaaaaaaaaaaz
  11528. No match
  11529. aaaaaaaaaaaaaz\q3000
  11530. Error -8 (match limit exceeded)
  11531. /(a+)*zz/S-
  11532. aaaaaaaaaaaaaz\Q10
  11533. Error -21 (recursion limit exceeded)
  11534. /(*LIMIT_MATCH=3000)(a+)*zz/I
  11535. Capturing subpattern count = 1
  11536. Match limit = 3000
  11537. No options
  11538. No first char
  11539. Need char = 'z'
  11540. aaaaaaaaaaaaaz
  11541. Error -8 (match limit exceeded)
  11542. aaaaaaaaaaaaaz\q60000
  11543. Error -8 (match limit exceeded)
  11544. /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
  11545. Capturing subpattern count = 1
  11546. Match limit = 3000
  11547. No options
  11548. No first char
  11549. Need char = 'z'
  11550. aaaaaaaaaaaaaz
  11551. Error -8 (match limit exceeded)
  11552. /(*LIMIT_MATCH=60000)(a+)*zz/I
  11553. Capturing subpattern count = 1
  11554. Match limit = 60000
  11555. No options
  11556. No first char
  11557. Need char = 'z'
  11558. aaaaaaaaaaaaaz
  11559. No match
  11560. aaaaaaaaaaaaaz\q3000
  11561. Error -8 (match limit exceeded)
  11562. /(*LIMIT_RECURSION=10)(a+)*zz/IS-
  11563. Capturing subpattern count = 1
  11564. Recursion limit = 10
  11565. No options
  11566. No first char
  11567. Need char = 'z'
  11568. Subject length lower bound = 2
  11569. Starting chars: a z
  11570. aaaaaaaaaaaaaz
  11571. Error -21 (recursion limit exceeded)
  11572. aaaaaaaaaaaaaz\Q1000
  11573. Error -21 (recursion limit exceeded)
  11574. /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
  11575. Capturing subpattern count = 1
  11576. Recursion limit = 10
  11577. No options
  11578. No first char
  11579. Need char = 'z'
  11580. Subject length lower bound = 2
  11581. Starting chars: a z
  11582. aaaaaaaaaaaaaz
  11583. Error -21 (recursion limit exceeded)
  11584. /(*LIMIT_RECURSION=1000)(a+)*zz/IS-
  11585. Capturing subpattern count = 1
  11586. Recursion limit = 1000
  11587. No options
  11588. No first char
  11589. Need char = 'z'
  11590. Subject length lower bound = 2
  11591. Starting chars: a z
  11592. aaaaaaaaaaaaaz
  11593. No match
  11594. aaaaaaaaaaaaaz\Q10
  11595. Error -21 (recursion limit exceeded)
  11596. /-- This test causes a segfault with Perl 5.18.0 --/
  11597. /^(?=(a)){0}b(?1)/
  11598. backgammon
  11599. 0: ba
  11600. /(?|(?<n>f)|(?<n>b))/JI
  11601. Capturing subpattern count = 1
  11602. Named capturing subpatterns:
  11603. n 1
  11604. Options: dupnames
  11605. No first char
  11606. No need char
  11607. /(?<a>abc)(?<a>z)\k<a>()/JDZS
  11608. ------------------------------------------------------------------
  11609. Bra
  11610. CBra 1
  11611. abc
  11612. Ket
  11613. CBra 2
  11614. z
  11615. Ket
  11616. \k<a>2
  11617. CBra 3
  11618. Ket
  11619. Ket
  11620. End
  11621. ------------------------------------------------------------------
  11622. Capturing subpattern count = 3
  11623. Max back reference = 2
  11624. Named capturing subpatterns:
  11625. a 1
  11626. a 2
  11627. Options: dupnames
  11628. First char = 'a'
  11629. Need char = 'z'
  11630. Subject length lower bound = 5
  11631. No starting char list
  11632. /a*[bcd]/BZ
  11633. ------------------------------------------------------------------
  11634. Bra
  11635. a*+
  11636. [b-d]
  11637. Ket
  11638. End
  11639. ------------------------------------------------------------------
  11640. /[bcd]*a/BZ
  11641. ------------------------------------------------------------------
  11642. Bra
  11643. [b-d]*+
  11644. a
  11645. Ket
  11646. End
  11647. ------------------------------------------------------------------
  11648. /-- A complete set of tests for auto-possessification of character types --/
  11649. /\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\C \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/BZx
  11650. ------------------------------------------------------------------
  11651. Bra
  11652. \D+
  11653. \D
  11654. \D++
  11655. \d
  11656. \D+
  11657. \S
  11658. \D+
  11659. \s
  11660. \D+
  11661. \W
  11662. \D+
  11663. \w
  11664. \D+
  11665. Any
  11666. \D+
  11667. AllAny
  11668. \D+
  11669. \R
  11670. \D+
  11671. \H
  11672. \D+
  11673. \h
  11674. \D+
  11675. \V
  11676. \D+
  11677. \v
  11678. \D+
  11679. \Z
  11680. \D++
  11681. \z
  11682. \D+
  11683. $
  11684. Ket
  11685. End
  11686. ------------------------------------------------------------------
  11687. /\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\C \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/BZx
  11688. ------------------------------------------------------------------
  11689. Bra
  11690. \d++
  11691. \D
  11692. \d+
  11693. \d
  11694. \d+
  11695. \S
  11696. \d++
  11697. \s
  11698. \d++
  11699. \W
  11700. \d+
  11701. \w
  11702. \d+
  11703. Any
  11704. \d+
  11705. AllAny
  11706. \d++
  11707. \R
  11708. \d+
  11709. \H
  11710. \d++
  11711. \h
  11712. \d+
  11713. \V
  11714. \d++
  11715. \v
  11716. \d++
  11717. \Z
  11718. \d++
  11719. \z
  11720. \d++
  11721. $
  11722. Ket
  11723. End
  11724. ------------------------------------------------------------------
  11725. /\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\C \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/BZx
  11726. ------------------------------------------------------------------
  11727. Bra
  11728. \S+
  11729. \D
  11730. \S+
  11731. \d
  11732. \S+
  11733. \S
  11734. \S++
  11735. \s
  11736. \S+
  11737. \W
  11738. \S+
  11739. \w
  11740. \S+
  11741. Any
  11742. \S+
  11743. AllAny
  11744. \S++
  11745. \R
  11746. \S+
  11747. \H
  11748. \S++
  11749. \h
  11750. \S+
  11751. \V
  11752. \S++
  11753. \v
  11754. \S++
  11755. \Z
  11756. \S++
  11757. \z
  11758. \S++
  11759. $
  11760. Ket
  11761. End
  11762. ------------------------------------------------------------------
  11763. /\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\C \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/BZx
  11764. ------------------------------------------------------------------
  11765. Bra
  11766. \s+
  11767. \D
  11768. \s++
  11769. \d
  11770. \s++
  11771. \S
  11772. \s+
  11773. \s
  11774. \s+
  11775. \W
  11776. \s++
  11777. \w
  11778. \s+
  11779. Any
  11780. \s+
  11781. AllAny
  11782. \s+
  11783. \R
  11784. \s+
  11785. \H
  11786. \s+
  11787. \h
  11788. \s+
  11789. \V
  11790. \s+
  11791. \v
  11792. \s+
  11793. \Z
  11794. \s++
  11795. \z
  11796. \s+
  11797. $
  11798. Ket
  11799. End
  11800. ------------------------------------------------------------------
  11801. /\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\C \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/BZx
  11802. ------------------------------------------------------------------
  11803. Bra
  11804. \W+
  11805. \D
  11806. \W++
  11807. \d
  11808. \W+
  11809. \S
  11810. \W+
  11811. \s
  11812. \W+
  11813. \W
  11814. \W++
  11815. \w
  11816. \W+
  11817. Any
  11818. \W+
  11819. AllAny
  11820. \W+
  11821. \R
  11822. \W+
  11823. \H
  11824. \W+
  11825. \h
  11826. \W+
  11827. \V
  11828. \W+
  11829. \v
  11830. \W+
  11831. \Z
  11832. \W++
  11833. \z
  11834. \W+
  11835. $
  11836. Ket
  11837. End
  11838. ------------------------------------------------------------------
  11839. /\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\C \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/BZx
  11840. ------------------------------------------------------------------
  11841. Bra
  11842. \w+
  11843. \D
  11844. \w+
  11845. \d
  11846. \w+
  11847. \S
  11848. \w++
  11849. \s
  11850. \w++
  11851. \W
  11852. \w+
  11853. \w
  11854. \w+
  11855. Any
  11856. \w+
  11857. AllAny
  11858. \w++
  11859. \R
  11860. \w+
  11861. \H
  11862. \w++
  11863. \h
  11864. \w+
  11865. \V
  11866. \w++
  11867. \v
  11868. \w++
  11869. \Z
  11870. \w++
  11871. \z
  11872. \w++
  11873. $
  11874. Ket
  11875. End
  11876. ------------------------------------------------------------------
  11877. /\C+\D \C+\d \C+\S \C+\s \C+\W \C+\w \C+. \C+\C \C+\R \C+\H \C+\h \C+\V \C+\v \C+\Z \C+\z \C+$/BZx
  11878. ------------------------------------------------------------------
  11879. Bra
  11880. AllAny+
  11881. \D
  11882. AllAny+
  11883. \d
  11884. AllAny+
  11885. \S
  11886. AllAny+
  11887. \s
  11888. AllAny+
  11889. \W
  11890. AllAny+
  11891. \w
  11892. AllAny+
  11893. Any
  11894. AllAny+
  11895. AllAny
  11896. AllAny+
  11897. \R
  11898. AllAny+
  11899. \H
  11900. AllAny+
  11901. \h
  11902. AllAny+
  11903. \V
  11904. AllAny+
  11905. \v
  11906. AllAny+
  11907. \Z
  11908. AllAny++
  11909. \z
  11910. AllAny+
  11911. $
  11912. Ket
  11913. End
  11914. ------------------------------------------------------------------
  11915. /\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\C \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/BZx
  11916. ------------------------------------------------------------------
  11917. Bra
  11918. \R+
  11919. \D
  11920. \R++
  11921. \d
  11922. \R+
  11923. \S
  11924. \R++
  11925. \s
  11926. \R+
  11927. \W
  11928. \R++
  11929. \w
  11930. \R++
  11931. Any
  11932. \R+
  11933. AllAny
  11934. \R+
  11935. \R
  11936. \R+
  11937. \H
  11938. \R++
  11939. \h
  11940. \R+
  11941. \V
  11942. \R+
  11943. \v
  11944. \R+
  11945. \Z
  11946. \R++
  11947. \z
  11948. \R+
  11949. $
  11950. Ket
  11951. End
  11952. ------------------------------------------------------------------
  11953. /\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\C \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/BZx
  11954. ------------------------------------------------------------------
  11955. Bra
  11956. \H+
  11957. \D
  11958. \H+
  11959. \d
  11960. \H+
  11961. \S
  11962. \H+
  11963. \s
  11964. \H+
  11965. \W
  11966. \H+
  11967. \w
  11968. \H+
  11969. Any
  11970. \H+
  11971. AllAny
  11972. \H+
  11973. \R
  11974. \H+
  11975. \H
  11976. \H++
  11977. \h
  11978. \H+
  11979. \V
  11980. \H+
  11981. \v
  11982. \H+
  11983. \Z
  11984. \H++
  11985. \z
  11986. \H+
  11987. $
  11988. Ket
  11989. End
  11990. ------------------------------------------------------------------
  11991. /\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\C \h+\R \h+\H \h+\h \h+\V \h+\v \h+\Z \h+\z \h+$/BZx
  11992. ------------------------------------------------------------------
  11993. Bra
  11994. \h+
  11995. \D
  11996. \h++
  11997. \d
  11998. \h++
  11999. \S
  12000. \h+
  12001. \s
  12002. \h+
  12003. \W
  12004. \h++
  12005. \w
  12006. \h+
  12007. Any
  12008. \h+
  12009. AllAny
  12010. \h++
  12011. \R
  12012. \h++
  12013. \H
  12014. \h+
  12015. \h
  12016. \h+
  12017. \V
  12018. \h++
  12019. \v
  12020. \h+
  12021. \Z
  12022. \h++
  12023. \z
  12024. \h+
  12025. $
  12026. Ket
  12027. End
  12028. ------------------------------------------------------------------
  12029. /\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\C \V+\R \V+\H \V+\h \V+\V \V+\v \V+\Z \V+\z \V+$/BZx
  12030. ------------------------------------------------------------------
  12031. Bra
  12032. \V+
  12033. \D
  12034. \V+
  12035. \d
  12036. \V+
  12037. \S
  12038. \V+
  12039. \s
  12040. \V+
  12041. \W
  12042. \V+
  12043. \w
  12044. \V+
  12045. Any
  12046. \V+
  12047. AllAny
  12048. \V++
  12049. \R
  12050. \V+
  12051. \H
  12052. \V+
  12053. \h
  12054. \V+
  12055. \V
  12056. \V++
  12057. \v
  12058. \V+
  12059. \Z
  12060. \V++
  12061. \z
  12062. \V+
  12063. $
  12064. Ket
  12065. End
  12066. ------------------------------------------------------------------
  12067. /\v+\D \v+\d \v+\S \v+\s \v+\W \v+\w \v+. \v+\C \v+\R \v+\H \v+\h \v+\V \v+\v \v+\Z \v+\z \v+$/BZx
  12068. ------------------------------------------------------------------
  12069. Bra
  12070. \v+
  12071. \D
  12072. \v++
  12073. \d
  12074. \v++
  12075. \S
  12076. \v+
  12077. \s
  12078. \v+
  12079. \W
  12080. \v++
  12081. \w
  12082. \v+
  12083. Any
  12084. \v+
  12085. AllAny
  12086. \v+
  12087. \R
  12088. \v+
  12089. \H
  12090. \v++
  12091. \h
  12092. \v++
  12093. \V
  12094. \v+
  12095. \v
  12096. \v+
  12097. \Z
  12098. \v++
  12099. \z
  12100. \v+
  12101. $
  12102. Ket
  12103. End
  12104. ------------------------------------------------------------------
  12105. / a+\D a+\d a+\S a+\s a+\W a+\w a+. a+\C a+\R a+\H a+\h a+\V a+\v a+\Z a+\z a+$/BZx
  12106. ------------------------------------------------------------------
  12107. Bra
  12108. a+
  12109. \D
  12110. a++
  12111. \d
  12112. a+
  12113. \S
  12114. a++
  12115. \s
  12116. a++
  12117. \W
  12118. a+
  12119. \w
  12120. a+
  12121. Any
  12122. a+
  12123. AllAny
  12124. a++
  12125. \R
  12126. a+
  12127. \H
  12128. a++
  12129. \h
  12130. a+
  12131. \V
  12132. a++
  12133. \v
  12134. a++
  12135. \Z
  12136. a++
  12137. \z
  12138. a++
  12139. $
  12140. Ket
  12141. End
  12142. ------------------------------------------------------------------
  12143. /\n+\D \n+\d \n+\S \n+\s \n+\W \n+\w \n+. \n+\C \n+\R \n+\H \n+\h \n+\V \n+\v \n+\Z \n+\z \n+$/BZx
  12144. ------------------------------------------------------------------
  12145. Bra
  12146. \x0a+
  12147. \D
  12148. \x0a++
  12149. \d
  12150. \x0a++
  12151. \S
  12152. \x0a+
  12153. \s
  12154. \x0a+
  12155. \W
  12156. \x0a++
  12157. \w
  12158. \x0a+
  12159. Any
  12160. \x0a+
  12161. AllAny
  12162. \x0a+
  12163. \R
  12164. \x0a+
  12165. \H
  12166. \x0a++
  12167. \h
  12168. \x0a++
  12169. \V
  12170. \x0a+
  12171. \v
  12172. \x0a+
  12173. \Z
  12174. \x0a++
  12175. \z
  12176. \x0a+
  12177. $
  12178. Ket
  12179. End
  12180. ------------------------------------------------------------------
  12181. / .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\C .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/BZx
  12182. ------------------------------------------------------------------
  12183. Bra
  12184. Any+
  12185. \D
  12186. Any+
  12187. \d
  12188. Any+
  12189. \S
  12190. Any+
  12191. \s
  12192. Any+
  12193. \W
  12194. Any+
  12195. \w
  12196. Any+
  12197. Any
  12198. Any+
  12199. AllAny
  12200. Any++
  12201. \R
  12202. Any+
  12203. \H
  12204. Any+
  12205. \h
  12206. Any+
  12207. \V
  12208. Any+
  12209. \v
  12210. Any+
  12211. \Z
  12212. Any++
  12213. \z
  12214. Any+
  12215. $
  12216. Ket
  12217. End
  12218. ------------------------------------------------------------------
  12219. / .+\D .+\d .+\S .+\s .+\W .+\w .+. .+\C .+\R .+\H .+\h .+\V .+\v .+\Z .+\z .+$/BZxs
  12220. ------------------------------------------------------------------
  12221. Bra
  12222. AllAny+
  12223. \D
  12224. AllAny+
  12225. \d
  12226. AllAny+
  12227. \S
  12228. AllAny+
  12229. \s
  12230. AllAny+
  12231. \W
  12232. AllAny+
  12233. \w
  12234. AllAny+
  12235. AllAny
  12236. AllAny+
  12237. AllAny
  12238. AllAny+
  12239. \R
  12240. AllAny+
  12241. \H
  12242. AllAny+
  12243. \h
  12244. AllAny+
  12245. \V
  12246. AllAny+
  12247. \v
  12248. AllAny+
  12249. \Z
  12250. AllAny++
  12251. \z
  12252. AllAny+
  12253. $
  12254. Ket
  12255. End
  12256. ------------------------------------------------------------------
  12257. /\D+$ \d+$ \S+$ \s+$ \W+$ \w+$ \C+$ \R+$ \H+$ \h+$ \V+$ \v+$ a+$ \n+$ .+$ .+$/BZxm
  12258. ------------------------------------------------------------------
  12259. Bra
  12260. \D+
  12261. /m $
  12262. \d++
  12263. /m $
  12264. \S++
  12265. /m $
  12266. \s+
  12267. /m $
  12268. \W+
  12269. /m $
  12270. \w++
  12271. /m $
  12272. AllAny+
  12273. /m $
  12274. \R+
  12275. /m $
  12276. \H+
  12277. /m $
  12278. \h+
  12279. /m $
  12280. \V+
  12281. /m $
  12282. \v+
  12283. /m $
  12284. a+
  12285. /m $
  12286. \x0a+
  12287. /m $
  12288. Any+
  12289. /m $
  12290. Any+
  12291. /m $
  12292. Ket
  12293. End
  12294. ------------------------------------------------------------------
  12295. /(?=a+)a(a+)++a/BZ
  12296. ------------------------------------------------------------------
  12297. Bra
  12298. Assert
  12299. a++
  12300. Ket
  12301. a
  12302. CBraPos 1
  12303. a++
  12304. KetRpos
  12305. a
  12306. Ket
  12307. End
  12308. ------------------------------------------------------------------
  12309. /a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/BZ
  12310. ------------------------------------------------------------------
  12311. Bra
  12312. a++
  12313. CBra 1
  12314. bb
  12315. Alt
  12316. cc
  12317. Ket
  12318. a++
  12319. Bra
  12320. bb
  12321. Alt
  12322. cc
  12323. Ket
  12324. a++
  12325. Once_NC
  12326. bb
  12327. Alt
  12328. cc
  12329. Ket
  12330. a++
  12331. Bra
  12332. bb
  12333. Alt
  12334. cc
  12335. KetRmax
  12336. a+
  12337. CBra 2
  12338. aa
  12339. Ket
  12340. a+
  12341. Bra
  12342. bb
  12343. Alt
  12344. aa
  12345. Ket
  12346. Ket
  12347. End
  12348. ------------------------------------------------------------------
  12349. /a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/BZ
  12350. ------------------------------------------------------------------
  12351. Bra
  12352. a++
  12353. Brazero
  12354. CBra 1
  12355. bb
  12356. Alt
  12357. cc
  12358. Ket
  12359. #
  12360. a++
  12361. Braminzero
  12362. Bra
  12363. bb
  12364. Alt
  12365. cc
  12366. Ket
  12367. #
  12368. a++
  12369. Once
  12370. Brazero
  12371. Bra
  12372. bb
  12373. Alt
  12374. cc
  12375. Ket
  12376. Ket
  12377. #
  12378. a++
  12379. Brazero
  12380. Bra
  12381. bb
  12382. Alt
  12383. cc
  12384. KetRmax
  12385. #
  12386. a+
  12387. Brazero
  12388. CBra 2
  12389. bb
  12390. Alt
  12391. cc
  12392. Ket
  12393. a#
  12394. a+
  12395. Brazero
  12396. Bra
  12397. aa
  12398. Ket
  12399. Ket
  12400. End
  12401. ------------------------------------------------------------------
  12402. /a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/BZ
  12403. ------------------------------------------------------------------
  12404. Bra
  12405. a+
  12406. Brazero
  12407. Bra
  12408. bb
  12409. Ket
  12410. a#
  12411. a++
  12412. Bra
  12413. Alt
  12414. Alt
  12415. Alt
  12416. Ket
  12417. #
  12418. a+
  12419. Bra
  12420. Alt
  12421. b
  12422. Ket
  12423. a#
  12424. a+
  12425. Brazero
  12426. Bra
  12427. Alt
  12428. Alt
  12429. Alt
  12430. Ket
  12431. a
  12432. Ket
  12433. End
  12434. ------------------------------------------------------------------
  12435. /[ab]*/BZ
  12436. ------------------------------------------------------------------
  12437. Bra
  12438. [ab]*+
  12439. Ket
  12440. End
  12441. ------------------------------------------------------------------
  12442. aaaa
  12443. 0: aaaa
  12444. /[ab]*?/BZ
  12445. ------------------------------------------------------------------
  12446. Bra
  12447. [ab]*?
  12448. Ket
  12449. End
  12450. ------------------------------------------------------------------
  12451. aaaa
  12452. 0:
  12453. /[ab]?/BZ
  12454. ------------------------------------------------------------------
  12455. Bra
  12456. [ab]?+
  12457. Ket
  12458. End
  12459. ------------------------------------------------------------------
  12460. aaaa
  12461. 0: a
  12462. /[ab]??/BZ
  12463. ------------------------------------------------------------------
  12464. Bra
  12465. [ab]??
  12466. Ket
  12467. End
  12468. ------------------------------------------------------------------
  12469. aaaa
  12470. 0:
  12471. /[ab]+/BZ
  12472. ------------------------------------------------------------------
  12473. Bra
  12474. [ab]++
  12475. Ket
  12476. End
  12477. ------------------------------------------------------------------
  12478. aaaa
  12479. 0: aaaa
  12480. /[ab]+?/BZ
  12481. ------------------------------------------------------------------
  12482. Bra
  12483. [ab]+?
  12484. Ket
  12485. End
  12486. ------------------------------------------------------------------
  12487. aaaa
  12488. 0: a
  12489. /[ab]{2,3}/BZ
  12490. ------------------------------------------------------------------
  12491. Bra
  12492. [ab]{2,3}+
  12493. Ket
  12494. End
  12495. ------------------------------------------------------------------
  12496. aaaa
  12497. 0: aaa
  12498. /[ab]{2,3}?/BZ
  12499. ------------------------------------------------------------------
  12500. Bra
  12501. [ab]{2,3}?
  12502. Ket
  12503. End
  12504. ------------------------------------------------------------------
  12505. aaaa
  12506. 0: aa
  12507. /[ab]{2,}/BZ
  12508. ------------------------------------------------------------------
  12509. Bra
  12510. [ab]{2,}+
  12511. Ket
  12512. End
  12513. ------------------------------------------------------------------
  12514. aaaa
  12515. 0: aaaa
  12516. /[ab]{2,}?/BZ
  12517. ------------------------------------------------------------------
  12518. Bra
  12519. [ab]{2,}?
  12520. Ket
  12521. End
  12522. ------------------------------------------------------------------
  12523. aaaa
  12524. 0: aa
  12525. /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/BZ
  12526. ------------------------------------------------------------------
  12527. Bra
  12528. \d++
  12529. \s{0,5}+
  12530. =
  12531. \s*+
  12532. \S?
  12533. =
  12534. \w{0,4}+
  12535. \W*+
  12536. Ket
  12537. End
  12538. ------------------------------------------------------------------
  12539. /[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/BZ
  12540. ------------------------------------------------------------------
  12541. Bra
  12542. [a-d]{5,12}+
  12543. [0-9e-z]*+
  12544. #
  12545. [\x00-`{-\xff] (neg)++
  12546. [b-y]*+
  12547. a
  12548. [2-7]?+
  12549. [\x00-/:-`{-\xff] (neg)++
  12550. Ket
  12551. End
  12552. ------------------------------------------------------------------
  12553. /[a-z]*\s#[ \t]?\S#[a-c]*\S#[C-G]+?\d#[4-8]*\D#[4-9,]*\D#[!$]{0,5}\w#[M-Xf-l]+\W#[a-c,]?\W/BZ
  12554. ------------------------------------------------------------------
  12555. Bra
  12556. [a-z]*+
  12557. \s
  12558. #
  12559. [\x09 ]?+
  12560. \S
  12561. #
  12562. [a-c]*
  12563. \S
  12564. #
  12565. [C-G]++
  12566. \d
  12567. #
  12568. [4-8]*+
  12569. \D
  12570. #
  12571. [,4-9]*
  12572. \D
  12573. #
  12574. [!$]{0,5}+
  12575. \w
  12576. #
  12577. [M-Xf-l]++
  12578. \W
  12579. #
  12580. [,a-c]?
  12581. \W
  12582. Ket
  12583. End
  12584. ------------------------------------------------------------------
  12585. /a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/BZ
  12586. ------------------------------------------------------------------
  12587. Bra
  12588. a+
  12589. Brazero
  12590. CBra 1
  12591. aa
  12592. Alt
  12593. bb
  12594. KetRmax
  12595. c#
  12596. a*
  12597. Brazero
  12598. CBra 2
  12599. bb
  12600. Alt
  12601. cc
  12602. KetRmax
  12603. a#
  12604. a?+
  12605. Brazero
  12606. CBra 3
  12607. bb
  12608. Alt
  12609. cc
  12610. KetRmax
  12611. d#
  12612. [a-f]*
  12613. Brazero
  12614. CBra 4
  12615. g
  12616. Alt
  12617. hh
  12618. KetRmax
  12619. f
  12620. Ket
  12621. End
  12622. ------------------------------------------------------------------
  12623. /[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/BZ
  12624. ------------------------------------------------------------------
  12625. Bra
  12626. [a-f]*+
  12627. Brazero
  12628. CBra 1
  12629. g
  12630. Alt
  12631. hh
  12632. Alt
  12633. i
  12634. KetRmax
  12635. i#
  12636. [a-x]{4,}
  12637. Brazero
  12638. SCBra 2
  12639. y{0,6}
  12640. KetRmax
  12641. y#
  12642. [a-k]++
  12643. CBra 3
  12644. ll
  12645. Alt
  12646. mm
  12647. KetRmax
  12648. n
  12649. Ket
  12650. End
  12651. ------------------------------------------------------------------
  12652. /[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/BZ
  12653. ------------------------------------------------------------------
  12654. Bra
  12655. [a-f]*+
  12656. Once_NC
  12657. gg
  12658. Alt
  12659. hh
  12660. KetRmax
  12661. #
  12662. [a-f]*+
  12663. Brazero
  12664. Once_NC
  12665. gg
  12666. Alt
  12667. hh
  12668. Ket
  12669. #
  12670. [a-f]*
  12671. Brazero
  12672. Once_NC
  12673. gg
  12674. Alt
  12675. hh
  12676. KetRmax
  12677. a#
  12678. [a-f]*+
  12679. Brazero
  12680. Once_NC
  12681. gg
  12682. Alt
  12683. hh
  12684. KetRmax
  12685. h
  12686. Ket
  12687. End
  12688. ------------------------------------------------------------------
  12689. /[a-c]*d/DZS
  12690. ------------------------------------------------------------------
  12691. Bra
  12692. [a-c]*+
  12693. d
  12694. Ket
  12695. End
  12696. ------------------------------------------------------------------
  12697. Capturing subpattern count = 0
  12698. No options
  12699. No first char
  12700. Need char = 'd'
  12701. Subject length lower bound = 1
  12702. Starting chars: a b c d
  12703. /[a-c]+d/DZS
  12704. ------------------------------------------------------------------
  12705. Bra
  12706. [a-c]++
  12707. d
  12708. Ket
  12709. End
  12710. ------------------------------------------------------------------
  12711. Capturing subpattern count = 0
  12712. No options
  12713. No first char
  12714. Need char = 'd'
  12715. Subject length lower bound = 2
  12716. Starting chars: a b c
  12717. /[a-c]?d/DZS
  12718. ------------------------------------------------------------------
  12719. Bra
  12720. [a-c]?+
  12721. d
  12722. Ket
  12723. End
  12724. ------------------------------------------------------------------
  12725. Capturing subpattern count = 0
  12726. No options
  12727. No first char
  12728. Need char = 'd'
  12729. Subject length lower bound = 1
  12730. Starting chars: a b c d
  12731. /[a-c]{4,6}d/DZS
  12732. ------------------------------------------------------------------
  12733. Bra
  12734. [a-c]{4,6}+
  12735. d
  12736. Ket
  12737. End
  12738. ------------------------------------------------------------------
  12739. Capturing subpattern count = 0
  12740. No options
  12741. No first char
  12742. Need char = 'd'
  12743. Subject length lower bound = 5
  12744. Starting chars: a b c
  12745. /[a-c]{0,6}d/DZS
  12746. ------------------------------------------------------------------
  12747. Bra
  12748. [a-c]{0,6}+
  12749. d
  12750. Ket
  12751. End
  12752. ------------------------------------------------------------------
  12753. Capturing subpattern count = 0
  12754. No options
  12755. No first char
  12756. Need char = 'd'
  12757. Subject length lower bound = 1
  12758. Starting chars: a b c d
  12759. /-- End of special auto-possessive tests --/
  12760. /^A\o{1239}B/
  12761. Failed: non-octal character in \o{} (closing brace missing?) at offset 8
  12762. /^A\oB/
  12763. Failed: missing opening brace after \o at offset 3
  12764. /^A\x{zz}B/
  12765. Failed: non-hex character in \x{} (closing brace missing?) at offset 5
  12766. /^A\x{12Z/
  12767. Failed: non-hex character in \x{} (closing brace missing?) at offset 7
  12768. /^A\x{/
  12769. Failed: non-hex character in \x{} (closing brace missing?) at offset 5
  12770. /[ab]++/BZO
  12771. ------------------------------------------------------------------
  12772. Bra
  12773. [ab]++
  12774. Ket
  12775. End
  12776. ------------------------------------------------------------------
  12777. /[^ab]*+/BZO
  12778. ------------------------------------------------------------------
  12779. Bra
  12780. [\x00-`c-\xff] (neg)*+
  12781. Ket
  12782. End
  12783. ------------------------------------------------------------------
  12784. /a{4}+/BZO
  12785. ------------------------------------------------------------------
  12786. Bra
  12787. a{4}
  12788. Ket
  12789. End
  12790. ------------------------------------------------------------------
  12791. /a{4}+/BZOi
  12792. ------------------------------------------------------------------
  12793. Bra
  12794. /i a{4}
  12795. Ket
  12796. End
  12797. ------------------------------------------------------------------
  12798. /[a-[:digit:]]+/
  12799. Failed: invalid range in character class at offset 3
  12800. /[A-[:digit:]]+/
  12801. Failed: invalid range in character class at offset 3
  12802. /[a-[.xxx.]]+/
  12803. Failed: invalid range in character class at offset 3
  12804. /[a-[=xxx=]]+/
  12805. Failed: invalid range in character class at offset 3
  12806. /[a-[!xxx!]]+/
  12807. Failed: range out of order in character class at offset 3
  12808. /[A-[!xxx!]]+/
  12809. A]]]
  12810. 0: A]]]
  12811. /[a-\d]+/
  12812. Failed: invalid range in character class at offset 4
  12813. /(?<0abc>xx)/
  12814. Failed: group name must start with a non-digit at offset 3
  12815. /(?&1abc)xx(?<1abc>y)/
  12816. Failed: group name must start with a non-digit at offset 3
  12817. /(?<ab-cd>xx)/
  12818. Failed: syntax error in subpattern name (missing terminator) at offset 5
  12819. /(?'0abc'xx)/
  12820. Failed: group name must start with a non-digit at offset 3
  12821. /(?P<0abc>xx)/
  12822. Failed: group name must start with a non-digit at offset 4
  12823. /\k<5ghj>/
  12824. Failed: group name must start with a non-digit at offset 3
  12825. /\k'5ghj'/
  12826. Failed: group name must start with a non-digit at offset 3
  12827. /\k{2fgh}/
  12828. Failed: group name must start with a non-digit at offset 3
  12829. /(?P=8yuki)/
  12830. Failed: group name must start with a non-digit at offset 4
  12831. /\g{4df}/
  12832. Failed: group name must start with a non-digit at offset 3
  12833. /(?&1abc)xx(?<1abc>y)/
  12834. Failed: group name must start with a non-digit at offset 3
  12835. /(?P>1abc)xx(?<1abc>y)/
  12836. Failed: group name must start with a non-digit at offset 4
  12837. /\g'3gh'/
  12838. Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 2
  12839. /\g<5fg>/
  12840. Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 2
  12841. /(?(<4gh>)abc)/
  12842. Failed: group name must start with a non-digit at offset 4
  12843. /(?('4gh')abc)/
  12844. Failed: group name must start with a non-digit at offset 4
  12845. /(?(4gh)abc)/
  12846. Failed: malformed number or name after (?( at offset 4
  12847. /(?(R&6yh)abc)/
  12848. Failed: group name must start with a non-digit at offset 5
  12849. /(((a\2)|(a*)\g<-1>))*a?/BZ
  12850. ------------------------------------------------------------------
  12851. Bra
  12852. Brazero
  12853. SCBra 1
  12854. Once
  12855. CBra 2
  12856. CBra 3
  12857. a
  12858. \2
  12859. Ket
  12860. Alt
  12861. CBra 4
  12862. a*
  12863. Ket
  12864. Recurse
  12865. Ket
  12866. Ket
  12867. KetRmax
  12868. a?+
  12869. Ket
  12870. End
  12871. ------------------------------------------------------------------
  12872. /-- Test the ugly "start or end of word" compatibility syntax --/
  12873. /[[:<:]]red[[:>:]]/BZ
  12874. ------------------------------------------------------------------
  12875. Bra
  12876. \b
  12877. Assert
  12878. \w
  12879. Ket
  12880. red
  12881. \b
  12882. AssertB
  12883. Reverse
  12884. \w
  12885. Ket
  12886. Ket
  12887. End
  12888. ------------------------------------------------------------------
  12889. little red riding hood
  12890. 0: red
  12891. a /red/ thing
  12892. 0: red
  12893. red is a colour
  12894. 0: red
  12895. put it all on red
  12896. 0: red
  12897. ** Failers
  12898. No match
  12899. no reduction
  12900. No match
  12901. Alfred Winifred
  12902. No match
  12903. /[a[:<:]] should give error/
  12904. Failed: unknown POSIX class name at offset 4
  12905. /(?=ab\K)/+
  12906. abcd
  12907. Start of matched string is beyond its end - displaying from end to start.
  12908. 0: ab
  12909. 0+ abcd
  12910. /abcd/f<lf>
  12911. xx\nxabcd
  12912. No match
  12913. / -- Test stack check external calls --/
  12914. /(((((a)))))/Q0
  12915. /(((((a)))))/Q1
  12916. Failed: parentheses are too deeply nested (stack check) at offset 0
  12917. /(((((a)))))/Q
  12918. ** Missing 0 or 1 after /Q
  12919. /^\w+(?>\s*)(?<=\w)/BZ
  12920. ------------------------------------------------------------------
  12921. Bra
  12922. ^
  12923. \w+
  12924. Once_NC
  12925. \s*+
  12926. Ket
  12927. AssertB
  12928. Reverse
  12929. \w
  12930. Ket
  12931. Ket
  12932. End
  12933. ------------------------------------------------------------------
  12934. /\othing/
  12935. Failed: missing opening brace after \o at offset 1
  12936. /\o{}/
  12937. Failed: digits missing in \x{} or \o{} at offset 1
  12938. /\o{whatever}/
  12939. Failed: non-octal character in \o{} (closing brace missing?) at offset 3
  12940. /\xthing/
  12941. /\x{}/
  12942. Failed: digits missing in \x{} or \o{} at offset 3
  12943. /\x{whatever}/
  12944. Failed: non-hex character in \x{} (closing brace missing?) at offset 3
  12945. "((?=(?(?=(?(?=(?(?=()))))))))"
  12946. a
  12947. 0:
  12948. 1:
  12949. 2:
  12950. "(?(?=)==)(((((((((?=)))))))))"
  12951. a
  12952. No match
  12953. /^(?:(a)|b)(?(1)A|B)/I
  12954. Capturing subpattern count = 1
  12955. Max back reference = 1
  12956. Options: anchored
  12957. No first char
  12958. No need char
  12959. aA123\O3
  12960. Matched, but too many substrings
  12961. 0: aA
  12962. aA123\O6
  12963. 0: aA
  12964. 1: a
  12965. '^(?:(?<AA>a)|b)(?(<AA>)A|B)'
  12966. aA123\O3
  12967. Matched, but too many substrings
  12968. 0: aA
  12969. aA123\O6
  12970. 0: aA
  12971. 1: a
  12972. '^(?<AA>)(?:(?<AA>a)|b)(?(<AA>)A|B)'J
  12973. aA123\O3
  12974. Matched, but too many substrings
  12975. 0: aA
  12976. aA123\O6
  12977. Matched, but too many substrings
  12978. 0: aA
  12979. 1:
  12980. '^(?:(?<AA>X)|)(?:(?<AA>a)|b)\k{AA}'J
  12981. aa123\O3
  12982. Matched, but too many substrings
  12983. 0: aa
  12984. aa123\O6
  12985. Matched, but too many substrings
  12986. 0: aa
  12987. 1: <unset>
  12988. /(?<N111>(?J)(?<N111>1(111111)11|)1|1|)(?(<N111>)1)/
  12989. /(?(?=0)?)+/
  12990. Failed: nothing to repeat at offset 7
  12991. /(?(?=0)(?=00)?00765)/
  12992. 00765
  12993. 0: 00765
  12994. /(?(?=0)(?=00)?00765|(?!3).56)/
  12995. 00765
  12996. 0: 00765
  12997. 456
  12998. 0: 456
  12999. ** Failers
  13000. No match
  13001. 356
  13002. No match
  13003. '^(a)*+(\w)'
  13004. g
  13005. 0: g
  13006. 1: <unset>
  13007. 2: g
  13008. g\O3
  13009. Matched, but too many substrings
  13010. 0: g
  13011. '^(?:a)*+(\w)'
  13012. g
  13013. 0: g
  13014. 1: g
  13015. g\O3
  13016. Matched, but too many substrings
  13017. 0: g
  13018. //C
  13019. \O\C+
  13020. Callout 255: last capture = -1
  13021. --->
  13022. +0 ^
  13023. Matched, but too many substrings
  13024. "((?2){0,1999}())?"
  13025. /((?+1)(\1))/BZ
  13026. ------------------------------------------------------------------
  13027. Bra
  13028. Once
  13029. CBra 1
  13030. Recurse
  13031. CBra 2
  13032. \1
  13033. Ket
  13034. Ket
  13035. Ket
  13036. Ket
  13037. End
  13038. ------------------------------------------------------------------
  13039. /(?(?!)a|b)/
  13040. bbb
  13041. 0: b
  13042. aaa
  13043. No match
  13044. "((?2)+)((?1))"
  13045. "(?(?<E>.*!.*)?)"
  13046. Failed: assertion expected after (?( or (?(?C) at offset 3
  13047. "X((?2)()*+){2}+"BZ
  13048. ------------------------------------------------------------------
  13049. Bra
  13050. X
  13051. Once
  13052. CBra 1
  13053. Recurse
  13054. Braposzero
  13055. SCBraPos 2
  13056. KetRpos
  13057. Ket
  13058. CBra 1
  13059. Recurse
  13060. Braposzero
  13061. SCBraPos 2
  13062. KetRpos
  13063. Ket
  13064. Ket
  13065. Ket
  13066. End
  13067. ------------------------------------------------------------------
  13068. "X((?2)()*+){2}"BZ
  13069. ------------------------------------------------------------------
  13070. Bra
  13071. X
  13072. CBra 1
  13073. Recurse
  13074. Braposzero
  13075. SCBraPos 2
  13076. KetRpos
  13077. Ket
  13078. CBra 1
  13079. Recurse
  13080. Braposzero
  13081. SCBraPos 2
  13082. KetRpos
  13083. Ket
  13084. Ket
  13085. End
  13086. ------------------------------------------------------------------
  13087. "(?<=((?2))((?1)))"
  13088. Failed: lookbehind assertion is not fixed length at offset 17
  13089. /(?<=\Ka)/g+
  13090. aaaaa
  13091. 0: a
  13092. 0+ aaaa
  13093. 0: a
  13094. 0+ aaaa
  13095. 0: a
  13096. 0+ aaa
  13097. 0: a
  13098. 0+ aa
  13099. 0: a
  13100. 0+ a
  13101. 0: a
  13102. 0+
  13103. /(?<=\Ka)/G+
  13104. aaaaa
  13105. 0: a
  13106. 0+ aaaa
  13107. 0: a
  13108. 0+ aaa
  13109. 0: a
  13110. 0+ aa
  13111. 0: a
  13112. 0+ a
  13113. 0: a
  13114. 0+
  13115. /((?2){73}(?2))((?1))/
  13116. /.((?2)(?R)\1)()/BZ
  13117. ------------------------------------------------------------------
  13118. Bra
  13119. Any
  13120. Once
  13121. CBra 1
  13122. Recurse
  13123. Recurse
  13124. \1
  13125. Ket
  13126. Ket
  13127. CBra 2
  13128. Ket
  13129. Ket
  13130. End
  13131. ------------------------------------------------------------------
  13132. /(?1)()((((((\1++))\x85)+)|))/
  13133. /(\9*+(?2);\3++()2|)++{/
  13134. Failed: reference to non-existent subpattern at offset 22
  13135. /\V\x85\9*+((?2)\3++()2)*:2/
  13136. Failed: reference to non-existent subpattern at offset 26
  13137. /(((?(R)){0,2}) (?''((?'R')((?'R')))))/J
  13138. /(((?(X)){0,2}) (?''((?'X')((?'X')))))/J
  13139. /(((?(R)){0,2}) (?''((?'X')((?'R')))))/
  13140. "(?J)(?'d'(?'d'\g{d}))"
  13141. ".*?\h.+.\.+\R*?\xd(?i)(?=!(?=b`b`b`\`b\xa9b!)`\a`bbbbbbbbbbbbb`bbbbbbbbbbbb*R\x85bbbbbbb\C?{((?2)(?))((
  13142. \H){8(?<=(?1){29}\xa8bbbb\x16\xd\xc6^($(?<! )(\xa9H4){4}h}1)B))\x15')"
  13143. "(?J:(?|(?'R')(\k'R')|((?'R'))))"
  13144. /(?<=|(\,\$(?73591620449005828816)\xa8.{7}){6}\x09)/
  13145. Failed: number is too big at offset 32
  13146. //
  13147. \O1
  13148. Matched, but too many substrings
  13149. /^(?:(?(1)x|)+)+$()/BZ
  13150. ------------------------------------------------------------------
  13151. Bra
  13152. ^
  13153. SBra
  13154. SCond
  13155. 1 Cond ref
  13156. x
  13157. Alt
  13158. KetRmax
  13159. KetRmax
  13160. $
  13161. CBra 1
  13162. Ket
  13163. Ket
  13164. End
  13165. ------------------------------------------------------------------
  13166. /(?=di(?<=(?1))|(?=(.))))/
  13167. Failed: unmatched parentheses at offset 23
  13168. /(?(R))*+/BZ
  13169. ------------------------------------------------------------------
  13170. Bra
  13171. Braposzero
  13172. SBraPos
  13173. SCond
  13174. Cond recurse any
  13175. Ket
  13176. KetRpos
  13177. Ket
  13178. End
  13179. ------------------------------------------------------------------
  13180. /[[:\\](?'abc')[a:]/
  13181. "[[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[:::::::::::::::::[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[[[:::E[[[:[:[[:[:::[[:::E[[[:[:[[:'[:::::E[[[:[::::::[[[:[[[[[[[::E[[[:[::::::[[[:[[[[[[[[:[[::[::::[[:::::::[[:[[[[[[[:[[::[:[[:[~"
  13182. Failed: missing terminating ] for character class at offset 353
  13183. /()(?(R)0)*+/BZ
  13184. ------------------------------------------------------------------
  13185. Bra
  13186. CBra 1
  13187. Ket
  13188. Braposzero
  13189. SBraPos
  13190. SCond
  13191. Cond recurse any
  13192. 0
  13193. Ket
  13194. KetRpos
  13195. Ket
  13196. End
  13197. ------------------------------------------------------------------
  13198. /(?R-:(?</
  13199. Failed: (?R or (?[+-]digits must be followed by ) at offset 3
  13200. /(?1){3918}(((((0(\k'R'))))(?J)(?'R'(?'R'\3){99})))/I
  13201. Capturing subpattern count = 8
  13202. Max back reference = 8
  13203. Named capturing subpatterns:
  13204. R 7
  13205. R 8
  13206. No options
  13207. Duplicate name status changes
  13208. No first char
  13209. Need char = '0'
  13210. /(?J:(?|(:(?|(?'R')(\k'R')|((?'R')))H'Rk'Rf)|s(?'R')))/
  13211. /0(?0)|(1)(*THEN)(*SKIP:0)(*FAIL)/
  13212. 01
  13213. No match
  13214. /((?(R8000000000)))/
  13215. Failed: number is too big at offset 16
  13216. /(?(8000000000/
  13217. Failed: number is too big at offset 13
  13218. /(?:ab)?(?:ab)(?:ab)/
  13219. abab
  13220. 0: abab
  13221. ababab
  13222. 0: ababab
  13223. aba
  13224. No match
  13225. /((*MARK:A))++a(*SKIP:B)b/
  13226. aacb
  13227. No match
  13228. /(?J:(?|(:(?|(?'R')(\z(?|(?'R')(\k'R')|((?'R')))k'R')|((?'R')))H'Ak'Rf)|s(?'R')))/
  13229. /(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?<a>1)/
  13230. /a[[:punct:]b]/BZ
  13231. ------------------------------------------------------------------
  13232. Bra
  13233. a
  13234. [!-/:-@[-`b{-~]
  13235. Ket
  13236. End
  13237. ------------------------------------------------------------------
  13238. /L(?#(|++<!(2)?/BZ
  13239. ------------------------------------------------------------------
  13240. Bra
  13241. L?+
  13242. Ket
  13243. End
  13244. ------------------------------------------------------------------
  13245. /L(?#(|++<!(2)?/BOZ
  13246. ------------------------------------------------------------------
  13247. Bra
  13248. L?
  13249. Ket
  13250. End
  13251. ------------------------------------------------------------------
  13252. /L(?#(|++<!(2)?/BCZ
  13253. ------------------------------------------------------------------
  13254. Bra
  13255. Callout 255 0 14
  13256. L?+
  13257. Callout 255 14 0
  13258. Ket
  13259. End
  13260. ------------------------------------------------------------------
  13261. /L(?#(|++<!(2)?/BCOZ
  13262. ------------------------------------------------------------------
  13263. Bra
  13264. Callout 255 0 14
  13265. L?
  13266. Callout 255 14 0
  13267. Ket
  13268. End
  13269. ------------------------------------------------------------------
  13270. /(A*)\E+/CBZ
  13271. ------------------------------------------------------------------
  13272. Bra
  13273. Callout 255 0 7
  13274. SCBra 1
  13275. Callout 255 1 2
  13276. A*
  13277. Callout 255 3 0
  13278. KetRmax
  13279. Callout 255 7 0
  13280. Ket
  13281. End
  13282. ------------------------------------------------------------------
  13283. /()\Q\E*]/BCZ
  13284. ------------------------------------------------------------------
  13285. Bra
  13286. Callout 255 0 7
  13287. Brazero
  13288. SCBra 1
  13289. Callout 255 1 0
  13290. KetRmax
  13291. Callout 255 7 1
  13292. ]
  13293. Callout 255 8 0
  13294. Ket
  13295. End
  13296. ------------------------------------------------------------------
  13297. /(?<A>)(?J:(?<B>)(?<B>))(?<C>)/
  13298. \O\CC
  13299. Matched, but too many substrings
  13300. copy substring C failed -7
  13301. /(?=a\K)/
  13302. ring bpattingbobnd $ 1,oern cou \rb\L
  13303. Start of matched string is beyond its end - displaying from end to start.
  13304. 0: a
  13305. 0L
  13306. /(?<=((?C)0))/
  13307. 9010
  13308. --->9010
  13309. 0 ^ 0
  13310. 0 ^ 0
  13311. 0:
  13312. 1: 0
  13313. abcd
  13314. --->abcd
  13315. 0 ^ 0
  13316. 0 ^ 0
  13317. 0 ^ 0
  13318. 0 ^ 0
  13319. No match
  13320. /((?J)(?'R'(?'R'(?'R'(?'R'(?'R'(?|(\k'R'))))))))/
  13321. /\N(?(?C)0?!.)*/
  13322. Failed: assertion expected after (?( or (?(?C) at offset 4
  13323. /(?<RA>abc)(?(R)xyz)/BZ
  13324. ------------------------------------------------------------------
  13325. Bra
  13326. CBra 1
  13327. abc
  13328. Ket
  13329. Cond
  13330. Cond recurse any
  13331. xyz
  13332. Ket
  13333. Ket
  13334. End
  13335. ------------------------------------------------------------------
  13336. /(?<R>abc)(?(R)xyz)/BZ
  13337. ------------------------------------------------------------------
  13338. Bra
  13339. CBra 1
  13340. abc
  13341. Ket
  13342. Cond
  13343. 1 Cond ref
  13344. xyz
  13345. Ket
  13346. Ket
  13347. End
  13348. ------------------------------------------------------------------
  13349. /(?=.*[A-Z])/I
  13350. Capturing subpattern count = 0
  13351. May match empty string
  13352. No options
  13353. No first char
  13354. No need char
  13355. "(?<=(a))\1?b"
  13356. ab
  13357. 0: b
  13358. 1: a
  13359. aaab
  13360. 0: ab
  13361. 1: a
  13362. "(?=(a))\1?b"
  13363. ab
  13364. 0: ab
  13365. 1: a
  13366. aaab
  13367. 0: ab
  13368. 1: a
  13369. /(?(?=^))b/
  13370. abc
  13371. 0: b
  13372. /-- End of testinput2 --/