testoutput8 118 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808
  1. /-- This set of tests check the DFA matching functionality of pcre_dfa_exec(),
  2. excluding UTF and Unicode property support. The -dfa flag must be used with
  3. pcretest when running it. --/
  4. < forbid 8W
  5. /abc/
  6. abc
  7. 0: abc
  8. /ab*c/
  9. abc
  10. 0: abc
  11. abbbbc
  12. 0: abbbbc
  13. ac
  14. 0: ac
  15. /ab+c/
  16. abc
  17. 0: abc
  18. abbbbbbc
  19. 0: abbbbbbc
  20. *** Failers
  21. No match
  22. ac
  23. No match
  24. ab
  25. No match
  26. /a*/O
  27. a
  28. 0: a
  29. 1:
  30. aaaaaaaaaaaaaaaaa
  31. 0: aaaaaaaaaaaaaaaaa
  32. 1: aaaaaaaaaaaaaaaa
  33. 2: aaaaaaaaaaaaaaa
  34. 3: aaaaaaaaaaaaaa
  35. 4: aaaaaaaaaaaaa
  36. 5: aaaaaaaaaaaa
  37. 6: aaaaaaaaaaa
  38. 7: aaaaaaaaaa
  39. 8: aaaaaaaaa
  40. 9: aaaaaaaa
  41. 10: aaaaaaa
  42. 11: aaaaaa
  43. 12: aaaaa
  44. 13: aaaa
  45. 14: aaa
  46. 15: aa
  47. 16: a
  48. 17:
  49. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  50. Matched, but offsets vector is too small to show all matches
  51. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  52. 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  53. 2: aaaaaaaaaaaaaaaaaaaaaaaaaaaa
  54. 3: aaaaaaaaaaaaaaaaaaaaaaaaaaa
  55. 4: aaaaaaaaaaaaaaaaaaaaaaaaaa
  56. 5: aaaaaaaaaaaaaaaaaaaaaaaaa
  57. 6: aaaaaaaaaaaaaaaaaaaaaaaa
  58. 7: aaaaaaaaaaaaaaaaaaaaaaa
  59. 8: aaaaaaaaaaaaaaaaaaaaaa
  60. 9: aaaaaaaaaaaaaaaaaaaaa
  61. 10: aaaaaaaaaaaaaaaaaaaa
  62. 11: aaaaaaaaaaaaaaaaaaa
  63. 12: aaaaaaaaaaaaaaaaaa
  64. 13: aaaaaaaaaaaaaaaaa
  65. 14: aaaaaaaaaaaaaaaa
  66. 15: aaaaaaaaaaaaaaa
  67. 16: aaaaaaaaaaaaaa
  68. 17: aaaaaaaaaaaaa
  69. 18: aaaaaaaaaaaa
  70. 19: aaaaaaaaaaa
  71. 20: aaaaaaaaaa
  72. 21: aaaaaaaaa
  73. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\F
  74. 0:
  75. /(a|abcd|african)/
  76. a
  77. 0: a
  78. abcd
  79. 0: abcd
  80. 1: a
  81. african
  82. 0: african
  83. 1: a
  84. /^abc/
  85. abcdef
  86. 0: abc
  87. *** Failers
  88. No match
  89. xyzabc
  90. No match
  91. xyz\nabc
  92. No match
  93. /^abc/m
  94. abcdef
  95. 0: abc
  96. xyz\nabc
  97. 0: abc
  98. *** Failers
  99. No match
  100. xyzabc
  101. No match
  102. /\Aabc/
  103. abcdef
  104. 0: abc
  105. *** Failers
  106. No match
  107. xyzabc
  108. No match
  109. xyz\nabc
  110. No match
  111. /\Aabc/m
  112. abcdef
  113. 0: abc
  114. *** Failers
  115. No match
  116. xyzabc
  117. No match
  118. xyz\nabc
  119. No match
  120. /\Gabc/
  121. abcdef
  122. 0: abc
  123. xyzabc\>3
  124. 0: abc
  125. *** Failers
  126. No match
  127. xyzabc
  128. No match
  129. xyzabc\>2
  130. No match
  131. /x\dy\Dz/
  132. x9yzz
  133. 0: x9yzz
  134. x0y+z
  135. 0: x0y+z
  136. *** Failers
  137. No match
  138. xyz
  139. No match
  140. xxy0z
  141. No match
  142. /x\sy\Sz/
  143. x yzz
  144. 0: x yzz
  145. x y+z
  146. 0: x y+z
  147. *** Failers
  148. No match
  149. xyz
  150. No match
  151. xxyyz
  152. No match
  153. /x\wy\Wz/
  154. xxy+z
  155. 0: xxy+z
  156. *** Failers
  157. No match
  158. xxy0z
  159. No match
  160. x+y+z
  161. No match
  162. /x.y/
  163. x+y
  164. 0: x+y
  165. x-y
  166. 0: x-y
  167. *** Failers
  168. No match
  169. x\ny
  170. No match
  171. /x.y/s
  172. x+y
  173. 0: x+y
  174. x-y
  175. 0: x-y
  176. x\ny
  177. 0: x\x0ay
  178. /(a.b(?s)c.d|x.y)p.q/
  179. a+bc+dp+q
  180. 0: a+bc+dp+q
  181. a+bc\ndp+q
  182. 0: a+bc\x0adp+q
  183. x\nyp+q
  184. 0: x\x0ayp+q
  185. *** Failers
  186. No match
  187. a\nbc\ndp+q
  188. No match
  189. a+bc\ndp\nq
  190. No match
  191. x\nyp\nq
  192. No match
  193. /a\d\z/
  194. ba0
  195. 0: a0
  196. *** Failers
  197. No match
  198. ba0\n
  199. No match
  200. ba0\ncd
  201. No match
  202. /a\d\z/m
  203. ba0
  204. 0: a0
  205. *** Failers
  206. No match
  207. ba0\n
  208. No match
  209. ba0\ncd
  210. No match
  211. /a\d\Z/
  212. ba0
  213. 0: a0
  214. ba0\n
  215. 0: a0
  216. *** Failers
  217. No match
  218. ba0\ncd
  219. No match
  220. /a\d\Z/m
  221. ba0
  222. 0: a0
  223. ba0\n
  224. 0: a0
  225. *** Failers
  226. No match
  227. ba0\ncd
  228. No match
  229. /a\d$/
  230. ba0
  231. 0: a0
  232. ba0\n
  233. 0: a0
  234. *** Failers
  235. No match
  236. ba0\ncd
  237. No match
  238. /a\d$/m
  239. ba0
  240. 0: a0
  241. ba0\n
  242. 0: a0
  243. ba0\ncd
  244. 0: a0
  245. *** Failers
  246. No match
  247. /abc/i
  248. abc
  249. 0: abc
  250. aBc
  251. 0: aBc
  252. ABC
  253. 0: ABC
  254. /[^a]/
  255. abcd
  256. 0: b
  257. /ab?\w/
  258. abz
  259. 0: abz
  260. 1: ab
  261. abbz
  262. 0: abb
  263. 1: ab
  264. azz
  265. 0: az
  266. /x{0,3}yz/
  267. ayzq
  268. 0: yz
  269. axyzq
  270. 0: xyz
  271. axxyz
  272. 0: xxyz
  273. axxxyzq
  274. 0: xxxyz
  275. axxxxyzq
  276. 0: xxxyz
  277. *** Failers
  278. No match
  279. ax
  280. No match
  281. axx
  282. No match
  283. /x{3}yz/
  284. axxxyzq
  285. 0: xxxyz
  286. axxxxyzq
  287. 0: xxxyz
  288. *** Failers
  289. No match
  290. ax
  291. No match
  292. axx
  293. No match
  294. ayzq
  295. No match
  296. axyzq
  297. No match
  298. axxyz
  299. No match
  300. /x{2,3}yz/
  301. axxyz
  302. 0: xxyz
  303. axxxyzq
  304. 0: xxxyz
  305. axxxxyzq
  306. 0: xxxyz
  307. *** Failers
  308. No match
  309. ax
  310. No match
  311. axx
  312. No match
  313. ayzq
  314. No match
  315. axyzq
  316. No match
  317. /[^a]+/O
  318. bac
  319. 0: b
  320. bcdefax
  321. 0: bcdef
  322. 1: bcde
  323. 2: bcd
  324. 3: bc
  325. 4: b
  326. *** Failers
  327. 0: *** F
  328. 1: ***
  329. 2: ***
  330. 3: **
  331. 4: *
  332. aaaaa
  333. No match
  334. /[^a]*/O
  335. bac
  336. 0: b
  337. 1:
  338. bcdefax
  339. 0: bcdef
  340. 1: bcde
  341. 2: bcd
  342. 3: bc
  343. 4: b
  344. 5:
  345. *** Failers
  346. 0: *** F
  347. 1: ***
  348. 2: ***
  349. 3: **
  350. 4: *
  351. 5:
  352. aaaaa
  353. 0:
  354. /[^a]{3,5}/O
  355. xyz
  356. 0: xyz
  357. awxyza
  358. 0: wxyz
  359. 1: wxy
  360. abcdefa
  361. 0: bcdef
  362. 1: bcde
  363. 2: bcd
  364. abcdefghijk
  365. 0: bcdef
  366. 1: bcde
  367. 2: bcd
  368. *** Failers
  369. 0: *** F
  370. 1: ***
  371. 2: ***
  372. axya
  373. No match
  374. axa
  375. No match
  376. aaaaa
  377. No match
  378. /\d*/
  379. 1234b567
  380. 0: 1234
  381. xyz
  382. 0:
  383. /\D*/
  384. a1234b567
  385. 0: a
  386. xyz
  387. 0: xyz
  388. /\d+/
  389. ab1234c56
  390. 0: 1234
  391. *** Failers
  392. No match
  393. xyz
  394. No match
  395. /\D+/
  396. ab123c56
  397. 0: ab
  398. *** Failers
  399. 0: *** Failers
  400. 789
  401. No match
  402. /\d?A/
  403. 045ABC
  404. 0: 5A
  405. ABC
  406. 0: A
  407. *** Failers
  408. No match
  409. XYZ
  410. No match
  411. /\D?A/
  412. ABC
  413. 0: A
  414. BAC
  415. 0: BA
  416. 9ABC
  417. 0: A
  418. *** Failers
  419. No match
  420. /a+/
  421. aaaa
  422. 0: aaaa
  423. /^.*xyz/
  424. xyz
  425. 0: xyz
  426. ggggggggxyz
  427. 0: ggggggggxyz
  428. /^.+xyz/
  429. abcdxyz
  430. 0: abcdxyz
  431. axyz
  432. 0: axyz
  433. *** Failers
  434. No match
  435. xyz
  436. No match
  437. /^.?xyz/
  438. xyz
  439. 0: xyz
  440. cxyz
  441. 0: cxyz
  442. /^\d{2,3}X/
  443. 12X
  444. 0: 12X
  445. 123X
  446. 0: 123X
  447. *** Failers
  448. No match
  449. X
  450. No match
  451. 1X
  452. No match
  453. 1234X
  454. No match
  455. /^[abcd]\d/
  456. a45
  457. 0: a4
  458. b93
  459. 0: b9
  460. c99z
  461. 0: c9
  462. d04
  463. 0: d0
  464. *** Failers
  465. No match
  466. e45
  467. No match
  468. abcd
  469. No match
  470. abcd1234
  471. No match
  472. 1234
  473. No match
  474. /^[abcd]*\d/
  475. a45
  476. 0: a4
  477. b93
  478. 0: b9
  479. c99z
  480. 0: c9
  481. d04
  482. 0: d0
  483. abcd1234
  484. 0: abcd1
  485. 1234
  486. 0: 1
  487. *** Failers
  488. No match
  489. e45
  490. No match
  491. abcd
  492. No match
  493. /^[abcd]+\d/
  494. a45
  495. 0: a4
  496. b93
  497. 0: b9
  498. c99z
  499. 0: c9
  500. d04
  501. 0: d0
  502. abcd1234
  503. 0: abcd1
  504. *** Failers
  505. No match
  506. 1234
  507. No match
  508. e45
  509. No match
  510. abcd
  511. No match
  512. /^a+X/
  513. aX
  514. 0: aX
  515. aaX
  516. 0: aaX
  517. /^[abcd]?\d/
  518. a45
  519. 0: a4
  520. b93
  521. 0: b9
  522. c99z
  523. 0: c9
  524. d04
  525. 0: d0
  526. 1234
  527. 0: 1
  528. *** Failers
  529. No match
  530. abcd1234
  531. No match
  532. e45
  533. No match
  534. /^[abcd]{2,3}\d/
  535. ab45
  536. 0: ab4
  537. bcd93
  538. 0: bcd9
  539. *** Failers
  540. No match
  541. 1234
  542. No match
  543. a36
  544. No match
  545. abcd1234
  546. No match
  547. ee45
  548. No match
  549. /^(abc)*\d/
  550. abc45
  551. 0: abc4
  552. abcabcabc45
  553. 0: abcabcabc4
  554. 42xyz
  555. 0: 4
  556. *** Failers
  557. No match
  558. /^(abc)+\d/
  559. abc45
  560. 0: abc4
  561. abcabcabc45
  562. 0: abcabcabc4
  563. *** Failers
  564. No match
  565. 42xyz
  566. No match
  567. /^(abc)?\d/
  568. abc45
  569. 0: abc4
  570. 42xyz
  571. 0: 4
  572. *** Failers
  573. No match
  574. abcabcabc45
  575. No match
  576. /^(abc){2,3}\d/
  577. abcabc45
  578. 0: abcabc4
  579. abcabcabc45
  580. 0: abcabcabc4
  581. *** Failers
  582. No match
  583. abcabcabcabc45
  584. No match
  585. abc45
  586. No match
  587. 42xyz
  588. No match
  589. /1(abc|xyz)2(?1)3/
  590. 1abc2abc3456
  591. 0: 1abc2abc3
  592. 1abc2xyz3456
  593. 0: 1abc2xyz3
  594. /^(a*\w|ab)=(a*\w|ab)/
  595. ab=ab
  596. 0: ab=ab
  597. 1: ab=a
  598. /^(a*\w|ab)=(?1)/
  599. ab=ab
  600. 0: ab=ab
  601. 1: ab=a
  602. /^([^()]|\((?1)*\))*$/
  603. abc
  604. 0: abc
  605. a(b)c
  606. 0: a(b)c
  607. a(b(c))d
  608. 0: a(b(c))d
  609. *** Failers)
  610. No match
  611. a(b(c)d
  612. No match
  613. /^>abc>([^()]|\((?1)*\))*<xyz<$/
  614. >abc>123<xyz<
  615. 0: >abc>123<xyz<
  616. >abc>1(2)3<xyz<
  617. 0: >abc>1(2)3<xyz<
  618. >abc>(1(2)3)<xyz<
  619. 0: >abc>(1(2)3)<xyz<
  620. /^(?>a*)\d/
  621. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876
  622. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9
  623. *** Failers
  624. No match
  625. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  626. No match
  627. /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/x
  628. <>
  629. 0: <>
  630. <abcd>
  631. 0: <abcd>
  632. <abc <123> hij>
  633. 0: <abc <123> hij>
  634. <abc <def> hij>
  635. 0: <def>
  636. <abc<>def>
  637. 0: <abc<>def>
  638. <abc<>
  639. 0: <>
  640. *** Failers
  641. No match
  642. <abc
  643. No match
  644. /^(?(?=abc)\w{3}:|\d\d)$/
  645. abc:
  646. 0: abc:
  647. 12
  648. 0: 12
  649. *** Failers
  650. No match
  651. 123
  652. No match
  653. xyz
  654. No match
  655. /^(?(?!abc)\d\d|\w{3}:)$/
  656. abc:
  657. 0: abc:
  658. 12
  659. 0: 12
  660. *** Failers
  661. No match
  662. 123
  663. No match
  664. xyz
  665. No match
  666. /^(?=abc)\w{5}:$/
  667. abcde:
  668. 0: abcde:
  669. *** Failers
  670. No match
  671. abc..
  672. No match
  673. 123
  674. No match
  675. vwxyz
  676. No match
  677. /^(?!abc)\d\d$/
  678. 12
  679. 0: 12
  680. *** Failers
  681. No match
  682. abcde:
  683. No match
  684. abc..
  685. No match
  686. 123
  687. No match
  688. vwxyz
  689. No match
  690. /(?<=abc|xy)123/
  691. abc12345
  692. 0: 123
  693. wxy123z
  694. 0: 123
  695. *** Failers
  696. No match
  697. 123abc
  698. No match
  699. /(?<!abc|xy)123/
  700. 123abc
  701. 0: 123
  702. mno123456
  703. 0: 123
  704. *** Failers
  705. No match
  706. abc12345
  707. No match
  708. wxy123z
  709. No match
  710. /abc(?C1)xyz/
  711. abcxyz
  712. --->abcxyz
  713. 1 ^ ^ x
  714. 0: abcxyz
  715. 123abcxyz999
  716. --->123abcxyz999
  717. 1 ^ ^ x
  718. 0: abcxyz
  719. /(ab|cd){3,4}/C
  720. ababab
  721. --->ababab
  722. +0 ^ (ab|cd){3,4}
  723. +1 ^ a
  724. +4 ^ c
  725. +2 ^^ b
  726. +3 ^ ^ |
  727. +1 ^ ^ a
  728. +4 ^ ^ c
  729. +2 ^ ^ b
  730. +3 ^ ^ |
  731. +1 ^ ^ a
  732. +4 ^ ^ c
  733. +2 ^ ^ b
  734. +3 ^ ^ |
  735. +12 ^ ^
  736. +1 ^ ^ a
  737. +4 ^ ^ c
  738. 0: ababab
  739. abcdabcd
  740. --->abcdabcd
  741. +0 ^ (ab|cd){3,4}
  742. +1 ^ a
  743. +4 ^ c
  744. +2 ^^ b
  745. +3 ^ ^ |
  746. +1 ^ ^ a
  747. +4 ^ ^ c
  748. +5 ^ ^ d
  749. +6 ^ ^ )
  750. +1 ^ ^ a
  751. +4 ^ ^ c
  752. +2 ^ ^ b
  753. +3 ^ ^ |
  754. +12 ^ ^
  755. +1 ^ ^ a
  756. +4 ^ ^ c
  757. +5 ^ ^ d
  758. +6 ^ ^ )
  759. +12 ^ ^
  760. 0: abcdabcd
  761. 1: abcdab
  762. abcdcdcdcdcd
  763. --->abcdcdcdcdcd
  764. +0 ^ (ab|cd){3,4}
  765. +1 ^ a
  766. +4 ^ c
  767. +2 ^^ b
  768. +3 ^ ^ |
  769. +1 ^ ^ a
  770. +4 ^ ^ c
  771. +5 ^ ^ d
  772. +6 ^ ^ )
  773. +1 ^ ^ a
  774. +4 ^ ^ c
  775. +5 ^ ^ d
  776. +6 ^ ^ )
  777. +12 ^ ^
  778. +1 ^ ^ a
  779. +4 ^ ^ c
  780. +5 ^ ^ d
  781. +6 ^ ^ )
  782. +12 ^ ^
  783. 0: abcdcdcd
  784. 1: abcdcd
  785. /^abc/
  786. abcdef
  787. 0: abc
  788. *** Failers
  789. No match
  790. abcdef\B
  791. No match
  792. /^(a*|xyz)/
  793. bcd
  794. 0:
  795. aaabcd
  796. 0: aaa
  797. xyz
  798. 0: xyz
  799. 1:
  800. xyz\N
  801. 0: xyz
  802. *** Failers
  803. 0:
  804. bcd\N
  805. No match
  806. /xyz$/
  807. xyz
  808. 0: xyz
  809. xyz\n
  810. 0: xyz
  811. *** Failers
  812. No match
  813. xyz\Z
  814. No match
  815. xyz\n\Z
  816. No match
  817. /xyz$/m
  818. xyz
  819. 0: xyz
  820. xyz\n
  821. 0: xyz
  822. abcxyz\npqr
  823. 0: xyz
  824. abcxyz\npqr\Z
  825. 0: xyz
  826. xyz\n\Z
  827. 0: xyz
  828. *** Failers
  829. No match
  830. xyz\Z
  831. No match
  832. /\Gabc/
  833. abcdef
  834. 0: abc
  835. defabcxyz\>3
  836. 0: abc
  837. *** Failers
  838. No match
  839. defabcxyz
  840. No match
  841. /^abcdef/
  842. ab\P
  843. Partial match: ab
  844. abcde\P
  845. Partial match: abcde
  846. abcdef\P
  847. 0: abcdef
  848. *** Failers
  849. No match
  850. abx\P
  851. No match
  852. /^a{2,4}\d+z/
  853. a\P
  854. Partial match: a
  855. aa\P
  856. Partial match: aa
  857. aa2\P
  858. Partial match: aa2
  859. aaa\P
  860. Partial match: aaa
  861. aaa23\P
  862. Partial match: aaa23
  863. aaaa12345\P
  864. Partial match: aaaa12345
  865. aa0z\P
  866. 0: aa0z
  867. aaaa4444444444444z\P
  868. 0: aaaa4444444444444z
  869. *** Failers
  870. No match
  871. az\P
  872. No match
  873. aaaaa\P
  874. No match
  875. a56\P
  876. No match
  877. /^abcdef/
  878. abc\P
  879. Partial match: abc
  880. def\R
  881. 0: def
  882. /(?<=foo)bar/
  883. xyzfo\P
  884. No match
  885. foob\P\>2
  886. Partial match at offset 3: foob
  887. foobar...\R\P\>4
  888. 0: ar
  889. xyzfo\P
  890. No match
  891. foobar\>2
  892. 0: bar
  893. *** Failers
  894. No match
  895. xyzfo\P
  896. No match
  897. obar\R
  898. No match
  899. /(ab*(cd|ef))+X/
  900. adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\P\Z
  901. No match
  902. lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\P\B\Z
  903. Partial match: abbbbbbcdaefabbbbbbbefa
  904. cdabbbbbbbb\P\R\B\Z
  905. Partial match: cdabbbbbbbb
  906. efabbbbbbbbbbbbbbbb\P\R\B\Z
  907. Partial match: efabbbbbbbbbbbbbbbb
  908. bbbbbbbbbbbbcdXyasdfadf\P\R\B\Z
  909. 0: bbbbbbbbbbbbcdX
  910. /(a|b)/SF>testsavedregex
  911. Compiled pattern written to testsavedregex
  912. Study data written to testsavedregex
  913. <testsavedregex
  914. Compiled pattern (byte-inverted) loaded from testsavedregex
  915. Study data loaded from testsavedregex
  916. abc
  917. 0: a
  918. ** Failers
  919. 0: a
  920. def
  921. No match
  922. /the quick brown fox/
  923. the quick brown fox
  924. 0: the quick brown fox
  925. The quick brown FOX
  926. No match
  927. What do you know about the quick brown fox?
  928. 0: the quick brown fox
  929. What do you know about THE QUICK BROWN FOX?
  930. No match
  931. /The quick brown fox/i
  932. the quick brown fox
  933. 0: the quick brown fox
  934. The quick brown FOX
  935. 0: The quick brown FOX
  936. What do you know about the quick brown fox?
  937. 0: the quick brown fox
  938. What do you know about THE QUICK BROWN FOX?
  939. 0: THE QUICK BROWN FOX
  940. /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
  941. abcd\t\n\r\f\a\e9;\$\\?caxyz
  942. 0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz
  943. /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
  944. abxyzpqrrrabbxyyyypqAzz
  945. 0: abxyzpqrrrabbxyyyypqAzz
  946. abxyzpqrrrabbxyyyypqAzz
  947. 0: abxyzpqrrrabbxyyyypqAzz
  948. aabxyzpqrrrabbxyyyypqAzz
  949. 0: aabxyzpqrrrabbxyyyypqAzz
  950. aaabxyzpqrrrabbxyyyypqAzz
  951. 0: aaabxyzpqrrrabbxyyyypqAzz
  952. aaaabxyzpqrrrabbxyyyypqAzz
  953. 0: aaaabxyzpqrrrabbxyyyypqAzz
  954. abcxyzpqrrrabbxyyyypqAzz
  955. 0: abcxyzpqrrrabbxyyyypqAzz
  956. aabcxyzpqrrrabbxyyyypqAzz
  957. 0: aabcxyzpqrrrabbxyyyypqAzz
  958. aaabcxyzpqrrrabbxyyyypAzz
  959. 0: aaabcxyzpqrrrabbxyyyypAzz
  960. aaabcxyzpqrrrabbxyyyypqAzz
  961. 0: aaabcxyzpqrrrabbxyyyypqAzz
  962. aaabcxyzpqrrrabbxyyyypqqAzz
  963. 0: aaabcxyzpqrrrabbxyyyypqqAzz
  964. aaabcxyzpqrrrabbxyyyypqqqAzz
  965. 0: aaabcxyzpqrrrabbxyyyypqqqAzz
  966. aaabcxyzpqrrrabbxyyyypqqqqAzz
  967. 0: aaabcxyzpqrrrabbxyyyypqqqqAzz
  968. aaabcxyzpqrrrabbxyyyypqqqqqAzz
  969. 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz
  970. aaabcxyzpqrrrabbxyyyypqqqqqqAzz
  971. 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz
  972. aaaabcxyzpqrrrabbxyyyypqAzz
  973. 0: aaaabcxyzpqrrrabbxyyyypqAzz
  974. abxyzzpqrrrabbxyyyypqAzz
  975. 0: abxyzzpqrrrabbxyyyypqAzz
  976. aabxyzzzpqrrrabbxyyyypqAzz
  977. 0: aabxyzzzpqrrrabbxyyyypqAzz
  978. aaabxyzzzzpqrrrabbxyyyypqAzz
  979. 0: aaabxyzzzzpqrrrabbxyyyypqAzz
  980. aaaabxyzzzzpqrrrabbxyyyypqAzz
  981. 0: aaaabxyzzzzpqrrrabbxyyyypqAzz
  982. abcxyzzpqrrrabbxyyyypqAzz
  983. 0: abcxyzzpqrrrabbxyyyypqAzz
  984. aabcxyzzzpqrrrabbxyyyypqAzz
  985. 0: aabcxyzzzpqrrrabbxyyyypqAzz
  986. aaabcxyzzzzpqrrrabbxyyyypqAzz
  987. 0: aaabcxyzzzzpqrrrabbxyyyypqAzz
  988. aaaabcxyzzzzpqrrrabbxyyyypqAzz
  989. 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz
  990. aaaabcxyzzzzpqrrrabbbxyyyypqAzz
  991. 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz
  992. aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
  993. 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
  994. aaabcxyzpqrrrabbxyyyypABzz
  995. 0: aaabcxyzpqrrrabbxyyyypABzz
  996. aaabcxyzpqrrrabbxyyyypABBzz
  997. 0: aaabcxyzpqrrrabbxyyyypABBzz
  998. >>>aaabxyzpqrrrabbxyyyypqAzz
  999. 0: aaabxyzpqrrrabbxyyyypqAzz
  1000. >aaaabxyzpqrrrabbxyyyypqAzz
  1001. 0: aaaabxyzpqrrrabbxyyyypqAzz
  1002. >>>>abcxyzpqrrrabbxyyyypqAzz
  1003. 0: abcxyzpqrrrabbxyyyypqAzz
  1004. *** Failers
  1005. No match
  1006. abxyzpqrrabbxyyyypqAzz
  1007. No match
  1008. abxyzpqrrrrabbxyyyypqAzz
  1009. No match
  1010. abxyzpqrrrabxyyyypqAzz
  1011. No match
  1012. aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
  1013. No match
  1014. aaaabcxyzzzzpqrrrabbbxyyypqAzz
  1015. No match
  1016. aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
  1017. No match
  1018. /^(abc){1,2}zz/
  1019. abczz
  1020. 0: abczz
  1021. abcabczz
  1022. 0: abcabczz
  1023. *** Failers
  1024. No match
  1025. zz
  1026. No match
  1027. abcabcabczz
  1028. No match
  1029. >>abczz
  1030. No match
  1031. /^(b+?|a){1,2}?c/
  1032. bc
  1033. 0: bc
  1034. bbc
  1035. 0: bbc
  1036. bbbc
  1037. 0: bbbc
  1038. bac
  1039. 0: bac
  1040. bbac
  1041. 0: bbac
  1042. aac
  1043. 0: aac
  1044. abbbbbbbbbbbc
  1045. 0: abbbbbbbbbbbc
  1046. bbbbbbbbbbbac
  1047. 0: bbbbbbbbbbbac
  1048. *** Failers
  1049. No match
  1050. aaac
  1051. No match
  1052. abbbbbbbbbbbac
  1053. No match
  1054. /^(b+|a){1,2}c/
  1055. bc
  1056. 0: bc
  1057. bbc
  1058. 0: bbc
  1059. bbbc
  1060. 0: bbbc
  1061. bac
  1062. 0: bac
  1063. bbac
  1064. 0: bbac
  1065. aac
  1066. 0: aac
  1067. abbbbbbbbbbbc
  1068. 0: abbbbbbbbbbbc
  1069. bbbbbbbbbbbac
  1070. 0: bbbbbbbbbbbac
  1071. *** Failers
  1072. No match
  1073. aaac
  1074. No match
  1075. abbbbbbbbbbbac
  1076. No match
  1077. /^(b+|a){1,2}?bc/
  1078. bbc
  1079. 0: bbc
  1080. /^(b*|ba){1,2}?bc/
  1081. babc
  1082. 0: babc
  1083. bbabc
  1084. 0: bbabc
  1085. bababc
  1086. 0: bababc
  1087. *** Failers
  1088. No match
  1089. bababbc
  1090. No match
  1091. babababc
  1092. No match
  1093. /^(ba|b*){1,2}?bc/
  1094. babc
  1095. 0: babc
  1096. bbabc
  1097. 0: bbabc
  1098. bababc
  1099. 0: bababc
  1100. *** Failers
  1101. No match
  1102. bababbc
  1103. No match
  1104. babababc
  1105. No match
  1106. /^\ca\cA\c[\c{\c:/
  1107. \x01\x01\e;z
  1108. 0: \x01\x01\x1b;z
  1109. /^[ab\]cde]/
  1110. athing
  1111. 0: a
  1112. bthing
  1113. 0: b
  1114. ]thing
  1115. 0: ]
  1116. cthing
  1117. 0: c
  1118. dthing
  1119. 0: d
  1120. ething
  1121. 0: e
  1122. *** Failers
  1123. No match
  1124. fthing
  1125. No match
  1126. [thing
  1127. No match
  1128. \\thing
  1129. No match
  1130. /^[]cde]/
  1131. ]thing
  1132. 0: ]
  1133. cthing
  1134. 0: c
  1135. dthing
  1136. 0: d
  1137. ething
  1138. 0: e
  1139. *** Failers
  1140. No match
  1141. athing
  1142. No match
  1143. fthing
  1144. No match
  1145. /^[^ab\]cde]/
  1146. fthing
  1147. 0: f
  1148. [thing
  1149. 0: [
  1150. \\thing
  1151. 0: \
  1152. *** Failers
  1153. 0: *
  1154. athing
  1155. No match
  1156. bthing
  1157. No match
  1158. ]thing
  1159. No match
  1160. cthing
  1161. No match
  1162. dthing
  1163. No match
  1164. ething
  1165. No match
  1166. /^[^]cde]/
  1167. athing
  1168. 0: a
  1169. fthing
  1170. 0: f
  1171. *** Failers
  1172. 0: *
  1173. ]thing
  1174. No match
  1175. cthing
  1176. No match
  1177. dthing
  1178. No match
  1179. ething
  1180. No match
  1181. /^\�/
  1182. 0: \x81
  1183. /^ÿ/
  1184. ÿ
  1185. 0: \xff
  1186. /^[0-9]+$/
  1187. 0
  1188. 0: 0
  1189. 1
  1190. 0: 1
  1191. 2
  1192. 0: 2
  1193. 3
  1194. 0: 3
  1195. 4
  1196. 0: 4
  1197. 5
  1198. 0: 5
  1199. 6
  1200. 0: 6
  1201. 7
  1202. 0: 7
  1203. 8
  1204. 0: 8
  1205. 9
  1206. 0: 9
  1207. 10
  1208. 0: 10
  1209. 100
  1210. 0: 100
  1211. *** Failers
  1212. No match
  1213. abc
  1214. No match
  1215. /^.*nter/
  1216. enter
  1217. 0: enter
  1218. inter
  1219. 0: inter
  1220. uponter
  1221. 0: uponter
  1222. /^xxx[0-9]+$/
  1223. xxx0
  1224. 0: xxx0
  1225. xxx1234
  1226. 0: xxx1234
  1227. *** Failers
  1228. No match
  1229. xxx
  1230. No match
  1231. /^.+[0-9][0-9][0-9]$/
  1232. x123
  1233. 0: x123
  1234. xx123
  1235. 0: xx123
  1236. 123456
  1237. 0: 123456
  1238. *** Failers
  1239. No match
  1240. 123
  1241. No match
  1242. x1234
  1243. 0: x1234
  1244. /^.+?[0-9][0-9][0-9]$/
  1245. x123
  1246. 0: x123
  1247. xx123
  1248. 0: xx123
  1249. 123456
  1250. 0: 123456
  1251. *** Failers
  1252. No match
  1253. 123
  1254. No match
  1255. x1234
  1256. 0: x1234
  1257. /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
  1258. abc!pqr=apquxz.ixr.zzz.ac.uk
  1259. 0: abc!pqr=apquxz.ixr.zzz.ac.uk
  1260. *** Failers
  1261. No match
  1262. !pqr=apquxz.ixr.zzz.ac.uk
  1263. No match
  1264. abc!=apquxz.ixr.zzz.ac.uk
  1265. No match
  1266. abc!pqr=apquxz:ixr.zzz.ac.uk
  1267. No match
  1268. abc!pqr=apquxz.ixr.zzz.ac.ukk
  1269. No match
  1270. /:/
  1271. Well, we need a colon: somewhere
  1272. 0: :
  1273. *** Fail if we don't
  1274. No match
  1275. /([\da-f:]+)$/i
  1276. 0abc
  1277. 0: 0abc
  1278. abc
  1279. 0: abc
  1280. fed
  1281. 0: fed
  1282. E
  1283. 0: E
  1284. ::
  1285. 0: ::
  1286. 5f03:12C0::932e
  1287. 0: 5f03:12C0::932e
  1288. fed def
  1289. 0: def
  1290. Any old stuff
  1291. 0: ff
  1292. *** Failers
  1293. No match
  1294. 0zzz
  1295. No match
  1296. gzzz
  1297. No match
  1298. fed\x20
  1299. No match
  1300. Any old rubbish
  1301. No match
  1302. /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
  1303. .1.2.3
  1304. 0: .1.2.3
  1305. A.12.123.0
  1306. 0: A.12.123.0
  1307. *** Failers
  1308. No match
  1309. .1.2.3333
  1310. No match
  1311. 1.2.3
  1312. No match
  1313. 1234.2.3
  1314. No match
  1315. /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
  1316. 1 IN SOA non-sp1 non-sp2(
  1317. 0: 1 IN SOA non-sp1 non-sp2(
  1318. 1 IN SOA non-sp1 non-sp2 (
  1319. 0: 1 IN SOA non-sp1 non-sp2 (
  1320. *** Failers
  1321. No match
  1322. 1IN SOA non-sp1 non-sp2(
  1323. No match
  1324. /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
  1325. a.
  1326. 0: a.
  1327. Z.
  1328. 0: Z.
  1329. 2.
  1330. 0: 2.
  1331. ab-c.pq-r.
  1332. 0: ab-c.pq-r.
  1333. sxk.zzz.ac.uk.
  1334. 0: sxk.zzz.ac.uk.
  1335. x-.y-.
  1336. 0: x-.y-.
  1337. *** Failers
  1338. No match
  1339. -abc.peq.
  1340. No match
  1341. /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
  1342. *.a
  1343. 0: *.a
  1344. *.b0-a
  1345. 0: *.b0-a
  1346. *.c3-b.c
  1347. 0: *.c3-b.c
  1348. *.c-a.b-c
  1349. 0: *.c-a.b-c
  1350. *** Failers
  1351. No match
  1352. *.0
  1353. No match
  1354. *.a-
  1355. No match
  1356. *.a-b.c-
  1357. No match
  1358. *.c-a.0-c
  1359. No match
  1360. /^(?=ab(de))(abd)(e)/
  1361. abde
  1362. 0: abde
  1363. /^(?!(ab)de|x)(abd)(f)/
  1364. abdf
  1365. 0: abdf
  1366. /^(?=(ab(cd)))(ab)/
  1367. abcd
  1368. 0: ab
  1369. /^[\da-f](\.[\da-f])*$/i
  1370. a.b.c.d
  1371. 0: a.b.c.d
  1372. A.B.C.D
  1373. 0: A.B.C.D
  1374. a.b.c.1.2.3.C
  1375. 0: a.b.c.1.2.3.C
  1376. /^\".*\"\s*(;.*)?$/
  1377. \"1234\"
  1378. 0: "1234"
  1379. \"abcd\" ;
  1380. 0: "abcd" ;
  1381. \"\" ; rhubarb
  1382. 0: "" ; rhubarb
  1383. *** Failers
  1384. No match
  1385. \"1234\" : things
  1386. No match
  1387. /^$/
  1388. \
  1389. 0:
  1390. *** Failers
  1391. No match
  1392. / ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x
  1393. ab c
  1394. 0: ab c
  1395. *** Failers
  1396. No match
  1397. abc
  1398. No match
  1399. ab cde
  1400. No match
  1401. /(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/
  1402. ab c
  1403. 0: ab c
  1404. *** Failers
  1405. No match
  1406. abc
  1407. No match
  1408. ab cde
  1409. No match
  1410. /^ a\ b[c ]d $/x
  1411. a bcd
  1412. 0: a bcd
  1413. a b d
  1414. 0: a b d
  1415. *** Failers
  1416. No match
  1417. abcd
  1418. No match
  1419. ab d
  1420. No match
  1421. /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
  1422. abcdefhijklm
  1423. 0: abcdefhijklm
  1424. /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
  1425. abcdefhijklm
  1426. 0: abcdefhijklm
  1427. /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
  1428. a+ Z0+\x08\n\x1d\x12
  1429. 0: a+ Z0+\x08\x0a\x1d\x12
  1430. /^[.^$|()*+?{,}]+/
  1431. .^\$(*+)|{?,?}
  1432. 0: .^$(*+)|{?,?}
  1433. /^a*\w/
  1434. z
  1435. 0: z
  1436. az
  1437. 0: az
  1438. 1: a
  1439. aaaz
  1440. 0: aaaz
  1441. 1: aaa
  1442. 2: aa
  1443. 3: a
  1444. a
  1445. 0: a
  1446. aa
  1447. 0: aa
  1448. 1: a
  1449. aaaa
  1450. 0: aaaa
  1451. 1: aaa
  1452. 2: aa
  1453. 3: a
  1454. a+
  1455. 0: a
  1456. aa+
  1457. 0: aa
  1458. 1: a
  1459. /^a*?\w/
  1460. z
  1461. 0: z
  1462. az
  1463. 0: az
  1464. 1: a
  1465. aaaz
  1466. 0: aaaz
  1467. 1: aaa
  1468. 2: aa
  1469. 3: a
  1470. a
  1471. 0: a
  1472. aa
  1473. 0: aa
  1474. 1: a
  1475. aaaa
  1476. 0: aaaa
  1477. 1: aaa
  1478. 2: aa
  1479. 3: a
  1480. a+
  1481. 0: a
  1482. aa+
  1483. 0: aa
  1484. 1: a
  1485. /^a+\w/
  1486. az
  1487. 0: az
  1488. aaaz
  1489. 0: aaaz
  1490. 1: aaa
  1491. 2: aa
  1492. aa
  1493. 0: aa
  1494. aaaa
  1495. 0: aaaa
  1496. 1: aaa
  1497. 2: aa
  1498. aa+
  1499. 0: aa
  1500. /^a+?\w/
  1501. az
  1502. 0: az
  1503. aaaz
  1504. 0: aaaz
  1505. 1: aaa
  1506. 2: aa
  1507. aa
  1508. 0: aa
  1509. aaaa
  1510. 0: aaaa
  1511. 1: aaa
  1512. 2: aa
  1513. aa+
  1514. 0: aa
  1515. /^\d{8}\w{2,}/
  1516. 1234567890
  1517. 0: 1234567890
  1518. 12345678ab
  1519. 0: 12345678ab
  1520. 12345678__
  1521. 0: 12345678__
  1522. *** Failers
  1523. No match
  1524. 1234567
  1525. No match
  1526. /^[aeiou\d]{4,5}$/
  1527. uoie
  1528. 0: uoie
  1529. 1234
  1530. 0: 1234
  1531. 12345
  1532. 0: 12345
  1533. aaaaa
  1534. 0: aaaaa
  1535. *** Failers
  1536. No match
  1537. 123456
  1538. No match
  1539. /^[aeiou\d]{4,5}?/
  1540. uoie
  1541. 0: uoie
  1542. 1234
  1543. 0: 1234
  1544. 12345
  1545. 0: 12345
  1546. 1: 1234
  1547. aaaaa
  1548. 0: aaaaa
  1549. 1: aaaa
  1550. 123456
  1551. 0: 12345
  1552. 1: 1234
  1553. /^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]/
  1554. From abcd Mon Sep 01 12:33:02 1997
  1555. 0: From abcd Mon Sep 01 12:33
  1556. /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
  1557. From abcd Mon Sep 01 12:33:02 1997
  1558. 0: From abcd Mon Sep 01 12:33
  1559. From abcd Mon Sep 1 12:33:02 1997
  1560. 0: From abcd Mon Sep 1 12:33
  1561. *** Failers
  1562. No match
  1563. From abcd Sep 01 12:33:02 1997
  1564. No match
  1565. /^12.34/s
  1566. 12\n34
  1567. 0: 12\x0a34
  1568. 12\r34
  1569. 0: 12\x0d34
  1570. /\w+(?=\t)/
  1571. the quick brown\t fox
  1572. 0: brown
  1573. /foo(?!bar)(.*)/
  1574. foobar is foolish see?
  1575. 0: foolish see?
  1576. /(?:(?!foo)...|^.{0,2})bar(.*)/
  1577. foobar crowbar etc
  1578. 0: rowbar etc
  1579. barrel
  1580. 0: barrel
  1581. 2barrel
  1582. 0: 2barrel
  1583. A barrel
  1584. 0: A barrel
  1585. /^(\D*)(?=\d)(?!123)/
  1586. abc456
  1587. 0: abc
  1588. *** Failers
  1589. No match
  1590. abc123
  1591. No match
  1592. /^1234(?# test newlines
  1593. inside)/
  1594. 1234
  1595. 0: 1234
  1596. /^1234 #comment in extended re
  1597. /x
  1598. 1234
  1599. 0: 1234
  1600. /#rhubarb
  1601. abcd/x
  1602. abcd
  1603. 0: abcd
  1604. /^abcd#rhubarb/x
  1605. abcd
  1606. 0: abcd
  1607. /(?!^)abc/
  1608. the abc
  1609. 0: abc
  1610. *** Failers
  1611. No match
  1612. abc
  1613. No match
  1614. /(?=^)abc/
  1615. abc
  1616. 0: abc
  1617. *** Failers
  1618. No match
  1619. the abc
  1620. No match
  1621. /^[ab]{1,3}(ab*|b)/O
  1622. aabbbbb
  1623. 0: aabbbbb
  1624. 1: aabbbb
  1625. 2: aabbb
  1626. 3: aabb
  1627. 4: aab
  1628. 5: aa
  1629. /^[ab]{1,3}?(ab*|b)/O
  1630. aabbbbb
  1631. 0: aabbbbb
  1632. 1: aabbbb
  1633. 2: aabbb
  1634. 3: aabb
  1635. 4: aab
  1636. 5: aa
  1637. /^[ab]{1,3}?(ab*?|b)/O
  1638. aabbbbb
  1639. 0: aabbbbb
  1640. 1: aabbbb
  1641. 2: aabbb
  1642. 3: aabb
  1643. 4: aab
  1644. 5: aa
  1645. /^[ab]{1,3}(ab*?|b)/O
  1646. aabbbbb
  1647. 0: aabbbbb
  1648. 1: aabbbb
  1649. 2: aabbb
  1650. 3: aabb
  1651. 4: aab
  1652. 5: aa
  1653. / (?: [\040\t] | \(
  1654. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1655. \) )* # optional leading comment
  1656. (?: (?:
  1657. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1658. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1659. |
  1660. " (?: # opening quote...
  1661. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  1662. | # or
  1663. \\ [^\x80-\xff] # Escaped something (something != CR)
  1664. )* " # closing quote
  1665. ) # initial word
  1666. (?: (?: [\040\t] | \(
  1667. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1668. \) )* \. (?: [\040\t] | \(
  1669. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1670. \) )* (?:
  1671. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1672. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1673. |
  1674. " (?: # opening quote...
  1675. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  1676. | # or
  1677. \\ [^\x80-\xff] # Escaped something (something != CR)
  1678. )* " # closing quote
  1679. ) )* # further okay, if led by a period
  1680. (?: [\040\t] | \(
  1681. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1682. \) )* @ (?: [\040\t] | \(
  1683. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1684. \) )* (?:
  1685. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1686. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1687. | \[ # [
  1688. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  1689. \] # ]
  1690. ) # initial subdomain
  1691. (?: #
  1692. (?: [\040\t] | \(
  1693. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1694. \) )* \. # if led by a period...
  1695. (?: [\040\t] | \(
  1696. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1697. \) )* (?:
  1698. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1699. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1700. | \[ # [
  1701. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  1702. \] # ]
  1703. ) # ...further okay
  1704. )*
  1705. # address
  1706. | # or
  1707. (?:
  1708. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1709. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1710. |
  1711. " (?: # opening quote...
  1712. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  1713. | # or
  1714. \\ [^\x80-\xff] # Escaped something (something != CR)
  1715. )* " # closing quote
  1716. ) # one word, optionally followed by....
  1717. (?:
  1718. [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
  1719. \(
  1720. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1721. \) | # comments, or...
  1722. " (?: # opening quote...
  1723. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  1724. | # or
  1725. \\ [^\x80-\xff] # Escaped something (something != CR)
  1726. )* " # closing quote
  1727. # quoted strings
  1728. )*
  1729. < (?: [\040\t] | \(
  1730. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1731. \) )* # leading <
  1732. (?: @ (?: [\040\t] | \(
  1733. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1734. \) )* (?:
  1735. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1736. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1737. | \[ # [
  1738. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  1739. \] # ]
  1740. ) # initial subdomain
  1741. (?: #
  1742. (?: [\040\t] | \(
  1743. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1744. \) )* \. # if led by a period...
  1745. (?: [\040\t] | \(
  1746. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1747. \) )* (?:
  1748. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1749. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1750. | \[ # [
  1751. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  1752. \] # ]
  1753. ) # ...further okay
  1754. )*
  1755. (?: (?: [\040\t] | \(
  1756. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1757. \) )* , (?: [\040\t] | \(
  1758. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1759. \) )* @ (?: [\040\t] | \(
  1760. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1761. \) )* (?:
  1762. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1763. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1764. | \[ # [
  1765. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  1766. \] # ]
  1767. ) # initial subdomain
  1768. (?: #
  1769. (?: [\040\t] | \(
  1770. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1771. \) )* \. # if led by a period...
  1772. (?: [\040\t] | \(
  1773. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1774. \) )* (?:
  1775. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1776. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1777. | \[ # [
  1778. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  1779. \] # ]
  1780. ) # ...further okay
  1781. )*
  1782. )* # further okay, if led by comma
  1783. : # closing colon
  1784. (?: [\040\t] | \(
  1785. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1786. \) )* )? # optional route
  1787. (?:
  1788. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1789. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1790. |
  1791. " (?: # opening quote...
  1792. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  1793. | # or
  1794. \\ [^\x80-\xff] # Escaped something (something != CR)
  1795. )* " # closing quote
  1796. ) # initial word
  1797. (?: (?: [\040\t] | \(
  1798. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1799. \) )* \. (?: [\040\t] | \(
  1800. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1801. \) )* (?:
  1802. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1803. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1804. |
  1805. " (?: # opening quote...
  1806. [^\\\x80-\xff\n\015"] # Anything except backslash and quote
  1807. | # or
  1808. \\ [^\x80-\xff] # Escaped something (something != CR)
  1809. )* " # closing quote
  1810. ) )* # further okay, if led by a period
  1811. (?: [\040\t] | \(
  1812. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1813. \) )* @ (?: [\040\t] | \(
  1814. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1815. \) )* (?:
  1816. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1817. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1818. | \[ # [
  1819. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  1820. \] # ]
  1821. ) # initial subdomain
  1822. (?: #
  1823. (?: [\040\t] | \(
  1824. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1825. \) )* \. # if led by a period...
  1826. (?: [\040\t] | \(
  1827. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1828. \) )* (?:
  1829. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1830. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1831. | \[ # [
  1832. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  1833. \] # ]
  1834. ) # ...further okay
  1835. )*
  1836. # address spec
  1837. (?: [\040\t] | \(
  1838. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1839. \) )* > # trailing >
  1840. # name and address
  1841. ) (?: [\040\t] | \(
  1842. (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
  1843. \) )* # optional trailing comment
  1844. /x
  1845. Alan Other <user\@dom.ain>
  1846. 0: Alan Other <user@dom.ain>
  1847. <user\@dom.ain>
  1848. 0: user@dom.ain
  1849. 1: user@dom
  1850. user\@dom.ain
  1851. 0: user@dom.ain
  1852. 1: user@dom
  1853. \"A. Other\" <user.1234\@dom.ain> (a comment)
  1854. 0: "A. Other" <user.1234@dom.ain> (a comment)
  1855. 1: "A. Other" <user.1234@dom.ain>
  1856. 2: "A. Other" <user.1234@dom.ain>
  1857. A. Other <user.1234\@dom.ain> (a comment)
  1858. 0: Other <user.1234@dom.ain> (a comment)
  1859. 1: Other <user.1234@dom.ain>
  1860. 2: Other <user.1234@dom.ain>
  1861. \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
  1862. 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
  1863. 1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re
  1864. A missing angle <user\@some.where
  1865. 0: user@some.where
  1866. 1: user@some
  1867. *** Failers
  1868. No match
  1869. The quick brown fox
  1870. No match
  1871. /[\040\t]* # Nab whitespace.
  1872. (?:
  1873. \( # (
  1874. [^\\\x80-\xff\n\015()] * # normal*
  1875. (?: # (
  1876. (?: \\ [^\x80-\xff] |
  1877. \( # (
  1878. [^\\\x80-\xff\n\015()] * # normal*
  1879. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  1880. \) # )
  1881. ) # special
  1882. [^\\\x80-\xff\n\015()] * # normal*
  1883. )* # )*
  1884. \) # )
  1885. [\040\t]* )* # If comment found, allow more spaces.
  1886. # optional leading comment
  1887. (?:
  1888. (?:
  1889. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1890. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1891. # Atom
  1892. | # or
  1893. " # "
  1894. [^\\\x80-\xff\n\015"] * # normal
  1895. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
  1896. " # "
  1897. # Quoted string
  1898. )
  1899. [\040\t]* # Nab whitespace.
  1900. (?:
  1901. \( # (
  1902. [^\\\x80-\xff\n\015()] * # normal*
  1903. (?: # (
  1904. (?: \\ [^\x80-\xff] |
  1905. \( # (
  1906. [^\\\x80-\xff\n\015()] * # normal*
  1907. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  1908. \) # )
  1909. ) # special
  1910. [^\\\x80-\xff\n\015()] * # normal*
  1911. )* # )*
  1912. \) # )
  1913. [\040\t]* )* # If comment found, allow more spaces.
  1914. (?:
  1915. \.
  1916. [\040\t]* # Nab whitespace.
  1917. (?:
  1918. \( # (
  1919. [^\\\x80-\xff\n\015()] * # normal*
  1920. (?: # (
  1921. (?: \\ [^\x80-\xff] |
  1922. \( # (
  1923. [^\\\x80-\xff\n\015()] * # normal*
  1924. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  1925. \) # )
  1926. ) # special
  1927. [^\\\x80-\xff\n\015()] * # normal*
  1928. )* # )*
  1929. \) # )
  1930. [\040\t]* )* # If comment found, allow more spaces.
  1931. (?:
  1932. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1933. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1934. # Atom
  1935. | # or
  1936. " # "
  1937. [^\\\x80-\xff\n\015"] * # normal
  1938. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
  1939. " # "
  1940. # Quoted string
  1941. )
  1942. [\040\t]* # Nab whitespace.
  1943. (?:
  1944. \( # (
  1945. [^\\\x80-\xff\n\015()] * # normal*
  1946. (?: # (
  1947. (?: \\ [^\x80-\xff] |
  1948. \( # (
  1949. [^\\\x80-\xff\n\015()] * # normal*
  1950. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  1951. \) # )
  1952. ) # special
  1953. [^\\\x80-\xff\n\015()] * # normal*
  1954. )* # )*
  1955. \) # )
  1956. [\040\t]* )* # If comment found, allow more spaces.
  1957. # additional words
  1958. )*
  1959. @
  1960. [\040\t]* # Nab whitespace.
  1961. (?:
  1962. \( # (
  1963. [^\\\x80-\xff\n\015()] * # normal*
  1964. (?: # (
  1965. (?: \\ [^\x80-\xff] |
  1966. \( # (
  1967. [^\\\x80-\xff\n\015()] * # normal*
  1968. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  1969. \) # )
  1970. ) # special
  1971. [^\\\x80-\xff\n\015()] * # normal*
  1972. )* # )*
  1973. \) # )
  1974. [\040\t]* )* # If comment found, allow more spaces.
  1975. (?:
  1976. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  1977. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  1978. |
  1979. \[ # [
  1980. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  1981. \] # ]
  1982. )
  1983. [\040\t]* # Nab whitespace.
  1984. (?:
  1985. \( # (
  1986. [^\\\x80-\xff\n\015()] * # normal*
  1987. (?: # (
  1988. (?: \\ [^\x80-\xff] |
  1989. \( # (
  1990. [^\\\x80-\xff\n\015()] * # normal*
  1991. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  1992. \) # )
  1993. ) # special
  1994. [^\\\x80-\xff\n\015()] * # normal*
  1995. )* # )*
  1996. \) # )
  1997. [\040\t]* )* # If comment found, allow more spaces.
  1998. # optional trailing comments
  1999. (?:
  2000. \.
  2001. [\040\t]* # Nab whitespace.
  2002. (?:
  2003. \( # (
  2004. [^\\\x80-\xff\n\015()] * # normal*
  2005. (?: # (
  2006. (?: \\ [^\x80-\xff] |
  2007. \( # (
  2008. [^\\\x80-\xff\n\015()] * # normal*
  2009. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2010. \) # )
  2011. ) # special
  2012. [^\\\x80-\xff\n\015()] * # normal*
  2013. )* # )*
  2014. \) # )
  2015. [\040\t]* )* # If comment found, allow more spaces.
  2016. (?:
  2017. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  2018. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  2019. |
  2020. \[ # [
  2021. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  2022. \] # ]
  2023. )
  2024. [\040\t]* # Nab whitespace.
  2025. (?:
  2026. \( # (
  2027. [^\\\x80-\xff\n\015()] * # normal*
  2028. (?: # (
  2029. (?: \\ [^\x80-\xff] |
  2030. \( # (
  2031. [^\\\x80-\xff\n\015()] * # normal*
  2032. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2033. \) # )
  2034. ) # special
  2035. [^\\\x80-\xff\n\015()] * # normal*
  2036. )* # )*
  2037. \) # )
  2038. [\040\t]* )* # If comment found, allow more spaces.
  2039. # optional trailing comments
  2040. )*
  2041. # address
  2042. | # or
  2043. (?:
  2044. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  2045. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  2046. # Atom
  2047. | # or
  2048. " # "
  2049. [^\\\x80-\xff\n\015"] * # normal
  2050. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
  2051. " # "
  2052. # Quoted string
  2053. )
  2054. # leading word
  2055. [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces
  2056. (?:
  2057. (?:
  2058. \( # (
  2059. [^\\\x80-\xff\n\015()] * # normal*
  2060. (?: # (
  2061. (?: \\ [^\x80-\xff] |
  2062. \( # (
  2063. [^\\\x80-\xff\n\015()] * # normal*
  2064. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2065. \) # )
  2066. ) # special
  2067. [^\\\x80-\xff\n\015()] * # normal*
  2068. )* # )*
  2069. \) # )
  2070. |
  2071. " # "
  2072. [^\\\x80-\xff\n\015"] * # normal
  2073. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
  2074. " # "
  2075. ) # "special" comment or quoted string
  2076. [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal"
  2077. )*
  2078. <
  2079. [\040\t]* # Nab whitespace.
  2080. (?:
  2081. \( # (
  2082. [^\\\x80-\xff\n\015()] * # normal*
  2083. (?: # (
  2084. (?: \\ [^\x80-\xff] |
  2085. \( # (
  2086. [^\\\x80-\xff\n\015()] * # normal*
  2087. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2088. \) # )
  2089. ) # special
  2090. [^\\\x80-\xff\n\015()] * # normal*
  2091. )* # )*
  2092. \) # )
  2093. [\040\t]* )* # If comment found, allow more spaces.
  2094. # <
  2095. (?:
  2096. @
  2097. [\040\t]* # Nab whitespace.
  2098. (?:
  2099. \( # (
  2100. [^\\\x80-\xff\n\015()] * # normal*
  2101. (?: # (
  2102. (?: \\ [^\x80-\xff] |
  2103. \( # (
  2104. [^\\\x80-\xff\n\015()] * # normal*
  2105. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2106. \) # )
  2107. ) # special
  2108. [^\\\x80-\xff\n\015()] * # normal*
  2109. )* # )*
  2110. \) # )
  2111. [\040\t]* )* # If comment found, allow more spaces.
  2112. (?:
  2113. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  2114. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  2115. |
  2116. \[ # [
  2117. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  2118. \] # ]
  2119. )
  2120. [\040\t]* # Nab whitespace.
  2121. (?:
  2122. \( # (
  2123. [^\\\x80-\xff\n\015()] * # normal*
  2124. (?: # (
  2125. (?: \\ [^\x80-\xff] |
  2126. \( # (
  2127. [^\\\x80-\xff\n\015()] * # normal*
  2128. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2129. \) # )
  2130. ) # special
  2131. [^\\\x80-\xff\n\015()] * # normal*
  2132. )* # )*
  2133. \) # )
  2134. [\040\t]* )* # If comment found, allow more spaces.
  2135. # optional trailing comments
  2136. (?:
  2137. \.
  2138. [\040\t]* # Nab whitespace.
  2139. (?:
  2140. \( # (
  2141. [^\\\x80-\xff\n\015()] * # normal*
  2142. (?: # (
  2143. (?: \\ [^\x80-\xff] |
  2144. \( # (
  2145. [^\\\x80-\xff\n\015()] * # normal*
  2146. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2147. \) # )
  2148. ) # special
  2149. [^\\\x80-\xff\n\015()] * # normal*
  2150. )* # )*
  2151. \) # )
  2152. [\040\t]* )* # If comment found, allow more spaces.
  2153. (?:
  2154. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  2155. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  2156. |
  2157. \[ # [
  2158. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  2159. \] # ]
  2160. )
  2161. [\040\t]* # Nab whitespace.
  2162. (?:
  2163. \( # (
  2164. [^\\\x80-\xff\n\015()] * # normal*
  2165. (?: # (
  2166. (?: \\ [^\x80-\xff] |
  2167. \( # (
  2168. [^\\\x80-\xff\n\015()] * # normal*
  2169. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2170. \) # )
  2171. ) # special
  2172. [^\\\x80-\xff\n\015()] * # normal*
  2173. )* # )*
  2174. \) # )
  2175. [\040\t]* )* # If comment found, allow more spaces.
  2176. # optional trailing comments
  2177. )*
  2178. (?: ,
  2179. [\040\t]* # Nab whitespace.
  2180. (?:
  2181. \( # (
  2182. [^\\\x80-\xff\n\015()] * # normal*
  2183. (?: # (
  2184. (?: \\ [^\x80-\xff] |
  2185. \( # (
  2186. [^\\\x80-\xff\n\015()] * # normal*
  2187. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2188. \) # )
  2189. ) # special
  2190. [^\\\x80-\xff\n\015()] * # normal*
  2191. )* # )*
  2192. \) # )
  2193. [\040\t]* )* # If comment found, allow more spaces.
  2194. @
  2195. [\040\t]* # Nab whitespace.
  2196. (?:
  2197. \( # (
  2198. [^\\\x80-\xff\n\015()] * # normal*
  2199. (?: # (
  2200. (?: \\ [^\x80-\xff] |
  2201. \( # (
  2202. [^\\\x80-\xff\n\015()] * # normal*
  2203. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2204. \) # )
  2205. ) # special
  2206. [^\\\x80-\xff\n\015()] * # normal*
  2207. )* # )*
  2208. \) # )
  2209. [\040\t]* )* # If comment found, allow more spaces.
  2210. (?:
  2211. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  2212. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  2213. |
  2214. \[ # [
  2215. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  2216. \] # ]
  2217. )
  2218. [\040\t]* # Nab whitespace.
  2219. (?:
  2220. \( # (
  2221. [^\\\x80-\xff\n\015()] * # normal*
  2222. (?: # (
  2223. (?: \\ [^\x80-\xff] |
  2224. \( # (
  2225. [^\\\x80-\xff\n\015()] * # normal*
  2226. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2227. \) # )
  2228. ) # special
  2229. [^\\\x80-\xff\n\015()] * # normal*
  2230. )* # )*
  2231. \) # )
  2232. [\040\t]* )* # If comment found, allow more spaces.
  2233. # optional trailing comments
  2234. (?:
  2235. \.
  2236. [\040\t]* # Nab whitespace.
  2237. (?:
  2238. \( # (
  2239. [^\\\x80-\xff\n\015()] * # normal*
  2240. (?: # (
  2241. (?: \\ [^\x80-\xff] |
  2242. \( # (
  2243. [^\\\x80-\xff\n\015()] * # normal*
  2244. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2245. \) # )
  2246. ) # special
  2247. [^\\\x80-\xff\n\015()] * # normal*
  2248. )* # )*
  2249. \) # )
  2250. [\040\t]* )* # If comment found, allow more spaces.
  2251. (?:
  2252. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  2253. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  2254. |
  2255. \[ # [
  2256. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  2257. \] # ]
  2258. )
  2259. [\040\t]* # Nab whitespace.
  2260. (?:
  2261. \( # (
  2262. [^\\\x80-\xff\n\015()] * # normal*
  2263. (?: # (
  2264. (?: \\ [^\x80-\xff] |
  2265. \( # (
  2266. [^\\\x80-\xff\n\015()] * # normal*
  2267. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2268. \) # )
  2269. ) # special
  2270. [^\\\x80-\xff\n\015()] * # normal*
  2271. )* # )*
  2272. \) # )
  2273. [\040\t]* )* # If comment found, allow more spaces.
  2274. # optional trailing comments
  2275. )*
  2276. )* # additional domains
  2277. :
  2278. [\040\t]* # Nab whitespace.
  2279. (?:
  2280. \( # (
  2281. [^\\\x80-\xff\n\015()] * # normal*
  2282. (?: # (
  2283. (?: \\ [^\x80-\xff] |
  2284. \( # (
  2285. [^\\\x80-\xff\n\015()] * # normal*
  2286. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2287. \) # )
  2288. ) # special
  2289. [^\\\x80-\xff\n\015()] * # normal*
  2290. )* # )*
  2291. \) # )
  2292. [\040\t]* )* # If comment found, allow more spaces.
  2293. # optional trailing comments
  2294. )? # optional route
  2295. (?:
  2296. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  2297. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  2298. # Atom
  2299. | # or
  2300. " # "
  2301. [^\\\x80-\xff\n\015"] * # normal
  2302. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
  2303. " # "
  2304. # Quoted string
  2305. )
  2306. [\040\t]* # Nab whitespace.
  2307. (?:
  2308. \( # (
  2309. [^\\\x80-\xff\n\015()] * # normal*
  2310. (?: # (
  2311. (?: \\ [^\x80-\xff] |
  2312. \( # (
  2313. [^\\\x80-\xff\n\015()] * # normal*
  2314. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2315. \) # )
  2316. ) # special
  2317. [^\\\x80-\xff\n\015()] * # normal*
  2318. )* # )*
  2319. \) # )
  2320. [\040\t]* )* # If comment found, allow more spaces.
  2321. (?:
  2322. \.
  2323. [\040\t]* # Nab whitespace.
  2324. (?:
  2325. \( # (
  2326. [^\\\x80-\xff\n\015()] * # normal*
  2327. (?: # (
  2328. (?: \\ [^\x80-\xff] |
  2329. \( # (
  2330. [^\\\x80-\xff\n\015()] * # normal*
  2331. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2332. \) # )
  2333. ) # special
  2334. [^\\\x80-\xff\n\015()] * # normal*
  2335. )* # )*
  2336. \) # )
  2337. [\040\t]* )* # If comment found, allow more spaces.
  2338. (?:
  2339. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  2340. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  2341. # Atom
  2342. | # or
  2343. " # "
  2344. [^\\\x80-\xff\n\015"] * # normal
  2345. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
  2346. " # "
  2347. # Quoted string
  2348. )
  2349. [\040\t]* # Nab whitespace.
  2350. (?:
  2351. \( # (
  2352. [^\\\x80-\xff\n\015()] * # normal*
  2353. (?: # (
  2354. (?: \\ [^\x80-\xff] |
  2355. \( # (
  2356. [^\\\x80-\xff\n\015()] * # normal*
  2357. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2358. \) # )
  2359. ) # special
  2360. [^\\\x80-\xff\n\015()] * # normal*
  2361. )* # )*
  2362. \) # )
  2363. [\040\t]* )* # If comment found, allow more spaces.
  2364. # additional words
  2365. )*
  2366. @
  2367. [\040\t]* # Nab whitespace.
  2368. (?:
  2369. \( # (
  2370. [^\\\x80-\xff\n\015()] * # normal*
  2371. (?: # (
  2372. (?: \\ [^\x80-\xff] |
  2373. \( # (
  2374. [^\\\x80-\xff\n\015()] * # normal*
  2375. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2376. \) # )
  2377. ) # special
  2378. [^\\\x80-\xff\n\015()] * # normal*
  2379. )* # )*
  2380. \) # )
  2381. [\040\t]* )* # If comment found, allow more spaces.
  2382. (?:
  2383. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  2384. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  2385. |
  2386. \[ # [
  2387. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  2388. \] # ]
  2389. )
  2390. [\040\t]* # Nab whitespace.
  2391. (?:
  2392. \( # (
  2393. [^\\\x80-\xff\n\015()] * # normal*
  2394. (?: # (
  2395. (?: \\ [^\x80-\xff] |
  2396. \( # (
  2397. [^\\\x80-\xff\n\015()] * # normal*
  2398. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2399. \) # )
  2400. ) # special
  2401. [^\\\x80-\xff\n\015()] * # normal*
  2402. )* # )*
  2403. \) # )
  2404. [\040\t]* )* # If comment found, allow more spaces.
  2405. # optional trailing comments
  2406. (?:
  2407. \.
  2408. [\040\t]* # Nab whitespace.
  2409. (?:
  2410. \( # (
  2411. [^\\\x80-\xff\n\015()] * # normal*
  2412. (?: # (
  2413. (?: \\ [^\x80-\xff] |
  2414. \( # (
  2415. [^\\\x80-\xff\n\015()] * # normal*
  2416. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2417. \) # )
  2418. ) # special
  2419. [^\\\x80-\xff\n\015()] * # normal*
  2420. )* # )*
  2421. \) # )
  2422. [\040\t]* )* # If comment found, allow more spaces.
  2423. (?:
  2424. [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
  2425. (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
  2426. |
  2427. \[ # [
  2428. (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
  2429. \] # ]
  2430. )
  2431. [\040\t]* # Nab whitespace.
  2432. (?:
  2433. \( # (
  2434. [^\\\x80-\xff\n\015()] * # normal*
  2435. (?: # (
  2436. (?: \\ [^\x80-\xff] |
  2437. \( # (
  2438. [^\\\x80-\xff\n\015()] * # normal*
  2439. (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
  2440. \) # )
  2441. ) # special
  2442. [^\\\x80-\xff\n\015()] * # normal*
  2443. )* # )*
  2444. \) # )
  2445. [\040\t]* )* # If comment found, allow more spaces.
  2446. # optional trailing comments
  2447. )*
  2448. # address spec
  2449. > # >
  2450. # name and address
  2451. )
  2452. /x
  2453. Alan Other <user\@dom.ain>
  2454. 0: Alan Other <user@dom.ain>
  2455. <user\@dom.ain>
  2456. 0: user@dom.ain
  2457. 1: user@dom
  2458. user\@dom.ain
  2459. 0: user@dom.ain
  2460. 1: user@dom
  2461. \"A. Other\" <user.1234\@dom.ain> (a comment)
  2462. 0: "A. Other" <user.1234@dom.ain>
  2463. A. Other <user.1234\@dom.ain> (a comment)
  2464. 0: Other <user.1234@dom.ain>
  2465. \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
  2466. 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay
  2467. 1: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re
  2468. A missing angle <user\@some.where
  2469. 0: user@some.where
  2470. 1: user@some
  2471. *** Failers
  2472. No match
  2473. The quick brown fox
  2474. No match
  2475. /abc\0def\00pqr\000xyz\0000AB/
  2476. abc\0def\00pqr\000xyz\0000AB
  2477. 0: abc\x00def\x00pqr\x00xyz\x000AB
  2478. abc456 abc\0def\00pqr\000xyz\0000ABCDE
  2479. 0: abc\x00def\x00pqr\x00xyz\x000AB
  2480. /abc\x0def\x00pqr\x000xyz\x0000AB/
  2481. abc\x0def\x00pqr\x000xyz\x0000AB
  2482. 0: abc\x0def\x00pqr\x000xyz\x0000AB
  2483. abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
  2484. 0: abc\x0def\x00pqr\x000xyz\x0000AB
  2485. /^[\000-\037]/
  2486. \0A
  2487. 0: \x00
  2488. \01B
  2489. 0: \x01
  2490. \037C
  2491. 0: \x1f
  2492. /\0*/
  2493. \0\0\0\0
  2494. 0: \x00\x00\x00\x00
  2495. /A\x0{2,3}Z/
  2496. The A\x0\x0Z
  2497. 0: A\x00\x00Z
  2498. An A\0\x0\0Z
  2499. 0: A\x00\x00\x00Z
  2500. *** Failers
  2501. No match
  2502. A\0Z
  2503. No match
  2504. A\0\x0\0\x0Z
  2505. No match
  2506. /^\s/
  2507. \040abc
  2508. 0:
  2509. \x0cabc
  2510. 0: \x0c
  2511. \nabc
  2512. 0: \x0a
  2513. \rabc
  2514. 0: \x0d
  2515. \tabc
  2516. 0: \x09
  2517. *** Failers
  2518. No match
  2519. abc
  2520. No match
  2521. /^a b
  2522. c/x
  2523. abc
  2524. 0: abc
  2525. /ab{1,3}bc/
  2526. abbbbc
  2527. 0: abbbbc
  2528. abbbc
  2529. 0: abbbc
  2530. abbc
  2531. 0: abbc
  2532. *** Failers
  2533. No match
  2534. abc
  2535. No match
  2536. abbbbbc
  2537. No match
  2538. /([^.]*)\.([^:]*):[T ]+(.*)/
  2539. track1.title:TBlah blah blah
  2540. 0: track1.title:TBlah blah blah
  2541. /([^.]*)\.([^:]*):[T ]+(.*)/i
  2542. track1.title:TBlah blah blah
  2543. 0: track1.title:TBlah blah blah
  2544. /([^.]*)\.([^:]*):[t ]+(.*)/i
  2545. track1.title:TBlah blah blah
  2546. 0: track1.title:TBlah blah blah
  2547. /^[W-c]+$/
  2548. WXY_^abc
  2549. 0: WXY_^abc
  2550. *** Failers
  2551. No match
  2552. wxy
  2553. No match
  2554. /^[W-c]+$/i
  2555. WXY_^abc
  2556. 0: WXY_^abc
  2557. wxy_^ABC
  2558. 0: wxy_^ABC
  2559. /^[\x3f-\x5F]+$/i
  2560. WXY_^abc
  2561. 0: WXY_^abc
  2562. wxy_^ABC
  2563. 0: wxy_^ABC
  2564. /^abc$/m
  2565. abc
  2566. 0: abc
  2567. qqq\nabc
  2568. 0: abc
  2569. abc\nzzz
  2570. 0: abc
  2571. qqq\nabc\nzzz
  2572. 0: abc
  2573. /^abc$/
  2574. abc
  2575. 0: abc
  2576. *** Failers
  2577. No match
  2578. qqq\nabc
  2579. No match
  2580. abc\nzzz
  2581. No match
  2582. qqq\nabc\nzzz
  2583. No match
  2584. /\Aabc\Z/m
  2585. abc
  2586. 0: abc
  2587. abc\n
  2588. 0: abc
  2589. *** Failers
  2590. No match
  2591. qqq\nabc
  2592. No match
  2593. abc\nzzz
  2594. No match
  2595. qqq\nabc\nzzz
  2596. No match
  2597. /\A(.)*\Z/s
  2598. abc\ndef
  2599. 0: abc\x0adef
  2600. /\A(.)*\Z/m
  2601. *** Failers
  2602. 0: *** Failers
  2603. abc\ndef
  2604. No match
  2605. /(?:b)|(?::+)/
  2606. b::c
  2607. 0: b
  2608. c::b
  2609. 0: ::
  2610. /[-az]+/
  2611. az-
  2612. 0: az-
  2613. *** Failers
  2614. 0: a
  2615. b
  2616. No match
  2617. /[az-]+/
  2618. za-
  2619. 0: za-
  2620. *** Failers
  2621. 0: a
  2622. b
  2623. No match
  2624. /[a\-z]+/
  2625. a-z
  2626. 0: a-z
  2627. *** Failers
  2628. 0: a
  2629. b
  2630. No match
  2631. /[a-z]+/
  2632. abcdxyz
  2633. 0: abcdxyz
  2634. /[\d-]+/
  2635. 12-34
  2636. 0: 12-34
  2637. *** Failers
  2638. No match
  2639. aaa
  2640. No match
  2641. /[\d-z]+/
  2642. 12-34z
  2643. 0: 12-34z
  2644. *** Failers
  2645. No match
  2646. aaa
  2647. No match
  2648. /\x5c/
  2649. \\
  2650. 0: \
  2651. /\x20Z/
  2652. the Zoo
  2653. 0: Z
  2654. *** Failers
  2655. No match
  2656. Zulu
  2657. No match
  2658. /ab{3cd/
  2659. ab{3cd
  2660. 0: ab{3cd
  2661. /ab{3,cd/
  2662. ab{3,cd
  2663. 0: ab{3,cd
  2664. /ab{3,4a}cd/
  2665. ab{3,4a}cd
  2666. 0: ab{3,4a}cd
  2667. /{4,5a}bc/
  2668. {4,5a}bc
  2669. 0: {4,5a}bc
  2670. /^a.b/<lf>
  2671. a\rb
  2672. 0: a\x0db
  2673. *** Failers
  2674. No match
  2675. a\nb
  2676. No match
  2677. /abc$/
  2678. abc
  2679. 0: abc
  2680. abc\n
  2681. 0: abc
  2682. *** Failers
  2683. No match
  2684. abc\ndef
  2685. No match
  2686. /(abc)\123/
  2687. abc\x53
  2688. 0: abcS
  2689. /(abc)\223/
  2690. abc\x93
  2691. 0: abc\x93
  2692. /(abc)\323/
  2693. abc\xd3
  2694. 0: abc\xd3
  2695. /(abc)\100/
  2696. abc\x40
  2697. 0: abc@
  2698. abc\100
  2699. 0: abc@
  2700. /(abc)\1000/
  2701. abc\x400
  2702. 0: abc@0
  2703. abc\x40\x30
  2704. 0: abc@0
  2705. abc\1000
  2706. 0: abc@0
  2707. abc\100\x30
  2708. 0: abc@0
  2709. abc\100\060
  2710. 0: abc@0
  2711. abc\100\60
  2712. 0: abc@0
  2713. /^A\8B\9C$/
  2714. A8B9C
  2715. 0: A8B9C
  2716. *** Failers
  2717. No match
  2718. A\08B\09C
  2719. No match
  2720. /^[A\8B\9C]+$/
  2721. A8B9C
  2722. 0: A8B9C
  2723. *** Failers
  2724. No match
  2725. A8B9C\x00
  2726. No match
  2727. /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
  2728. abcdefghijk\12S
  2729. 0: abcdefghijk\x0aS
  2730. /ab\idef/
  2731. abidef
  2732. 0: abidef
  2733. /a{0}bc/
  2734. bc
  2735. 0: bc
  2736. /(a|(bc)){0,0}?xyz/
  2737. xyz
  2738. 0: xyz
  2739. /abc[\10]de/
  2740. abc\010de
  2741. 0: abc\x08de
  2742. /abc[\1]de/
  2743. abc\1de
  2744. 0: abc\x01de
  2745. /(abc)[\1]de/
  2746. abc\1de
  2747. 0: abc\x01de
  2748. /(?s)a.b/
  2749. a\nb
  2750. 0: a\x0ab
  2751. /^([^a])([^\b])([^c]*)([^d]{3,4})/
  2752. baNOTccccd
  2753. 0: baNOTcccc
  2754. 1: baNOTccc
  2755. 2: baNOTcc
  2756. 3: baNOTc
  2757. baNOTcccd
  2758. 0: baNOTccc
  2759. 1: baNOTcc
  2760. 2: baNOTc
  2761. baNOTccd
  2762. 0: baNOTcc
  2763. 1: baNOTc
  2764. bacccd
  2765. 0: baccc
  2766. *** Failers
  2767. 0: *** Failers
  2768. 1: *** Failer
  2769. 2: *** Faile
  2770. 3: *** Fail
  2771. 4: *** Fai
  2772. 5: *** Fa
  2773. anything
  2774. No match
  2775. b\bc
  2776. No match
  2777. baccd
  2778. No match
  2779. /[^a]/
  2780. Abc
  2781. 0: A
  2782. /[^a]/i
  2783. Abc
  2784. 0: b
  2785. /[^a]+/
  2786. AAAaAbc
  2787. 0: AAA
  2788. /[^a]+/i
  2789. AAAaAbc
  2790. 0: bc
  2791. /[^a]+/
  2792. bbb\nccc
  2793. 0: bbb\x0accc
  2794. /[^k]$/
  2795. abc
  2796. 0: c
  2797. *** Failers
  2798. 0: s
  2799. abk
  2800. No match
  2801. /[^k]{2,3}$/
  2802. abc
  2803. 0: abc
  2804. kbc
  2805. 0: bc
  2806. kabc
  2807. 0: abc
  2808. *** Failers
  2809. 0: ers
  2810. abk
  2811. No match
  2812. akb
  2813. No match
  2814. akk
  2815. No match
  2816. /^\d{8,}\@.+[^k]$/
  2817. 12345678\@a.b.c.d
  2818. 0: 12345678@a.b.c.d
  2819. 123456789\@x.y.z
  2820. 0: 123456789@x.y.z
  2821. *** Failers
  2822. No match
  2823. 12345678\@x.y.uk
  2824. No match
  2825. 1234567\@a.b.c.d
  2826. No match
  2827. /[^a]/
  2828. aaaabcd
  2829. 0: b
  2830. aaAabcd
  2831. 0: A
  2832. /[^a]/i
  2833. aaaabcd
  2834. 0: b
  2835. aaAabcd
  2836. 0: b
  2837. /[^az]/
  2838. aaaabcd
  2839. 0: b
  2840. aaAabcd
  2841. 0: A
  2842. /[^az]/i
  2843. aaaabcd
  2844. 0: b
  2845. aaAabcd
  2846. 0: b
  2847. /\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377/
  2848. \000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377
  2849. 0: \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff
  2850. /P[^*]TAIRE[^*]{1,6}?LL/
  2851. xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
  2852. 0: PSTAIREISLL
  2853. /P[^*]TAIRE[^*]{1,}?LL/
  2854. xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
  2855. 0: PSTAIREISLL
  2856. /(\.\d\d[1-9]?)\d+/
  2857. 1.230003938
  2858. 0: .230003938
  2859. 1.875000282
  2860. 0: .875000282
  2861. 1.235
  2862. 0: .235
  2863. /(\.\d\d((?=0)|\d(?=\d)))/
  2864. 1.230003938
  2865. 0: .230
  2866. 1: .23
  2867. 1.875000282
  2868. 0: .875
  2869. *** Failers
  2870. No match
  2871. 1.235
  2872. No match
  2873. /a(?)b/
  2874. ab
  2875. 0: ab
  2876. /\b(foo)\s+(\w+)/i
  2877. Food is on the foo table
  2878. 0: foo table
  2879. /foo(.*)bar/
  2880. The food is under the bar in the barn.
  2881. 0: food is under the bar in the bar
  2882. 1: food is under the bar
  2883. /foo(.*?)bar/
  2884. The food is under the bar in the barn.
  2885. 0: food is under the bar in the bar
  2886. 1: food is under the bar
  2887. /(.*)(\d*)/O
  2888. I have 2 numbers: 53147
  2889. Matched, but offsets vector is too small to show all matches
  2890. 0: I have 2 numbers: 53147
  2891. 1: I have 2 numbers: 5314
  2892. 2: I have 2 numbers: 531
  2893. 3: I have 2 numbers: 53
  2894. 4: I have 2 numbers: 5
  2895. 5: I have 2 numbers:
  2896. 6: I have 2 numbers:
  2897. 7: I have 2 numbers
  2898. 8: I have 2 number
  2899. 9: I have 2 numbe
  2900. 10: I have 2 numb
  2901. 11: I have 2 num
  2902. 12: I have 2 nu
  2903. 13: I have 2 n
  2904. 14: I have 2
  2905. 15: I have 2
  2906. 16: I have
  2907. 17: I have
  2908. 18: I hav
  2909. 19: I ha
  2910. 20: I h
  2911. 21: I
  2912. /(.*)(\d+)/
  2913. I have 2 numbers: 53147
  2914. 0: I have 2 numbers: 53147
  2915. 1: I have 2
  2916. /(.*?)(\d*)/O
  2917. I have 2 numbers: 53147
  2918. Matched, but offsets vector is too small to show all matches
  2919. 0: I have 2 numbers: 53147
  2920. 1: I have 2 numbers: 5314
  2921. 2: I have 2 numbers: 531
  2922. 3: I have 2 numbers: 53
  2923. 4: I have 2 numbers: 5
  2924. 5: I have 2 numbers:
  2925. 6: I have 2 numbers:
  2926. 7: I have 2 numbers
  2927. 8: I have 2 number
  2928. 9: I have 2 numbe
  2929. 10: I have 2 numb
  2930. 11: I have 2 num
  2931. 12: I have 2 nu
  2932. 13: I have 2 n
  2933. 14: I have 2
  2934. 15: I have 2
  2935. 16: I have
  2936. 17: I have
  2937. 18: I hav
  2938. 19: I ha
  2939. 20: I h
  2940. 21: I
  2941. /(.*?)(\d+)/
  2942. I have 2 numbers: 53147
  2943. 0: I have 2 numbers: 53147
  2944. 1: I have 2
  2945. /(.*)(\d+)$/
  2946. I have 2 numbers: 53147
  2947. 0: I have 2 numbers: 53147
  2948. /(.*?)(\d+)$/
  2949. I have 2 numbers: 53147
  2950. 0: I have 2 numbers: 53147
  2951. /(.*)\b(\d+)$/
  2952. I have 2 numbers: 53147
  2953. 0: I have 2 numbers: 53147
  2954. /(.*\D)(\d+)$/
  2955. I have 2 numbers: 53147
  2956. 0: I have 2 numbers: 53147
  2957. /^\D*(?!123)/
  2958. ABC123
  2959. 0: AB
  2960. 1: A
  2961. 2:
  2962. /^(\D*)(?=\d)(?!123)/
  2963. ABC445
  2964. 0: ABC
  2965. *** Failers
  2966. No match
  2967. ABC123
  2968. No match
  2969. /^[W-]46]/
  2970. W46]789
  2971. 0: W46]
  2972. -46]789
  2973. 0: -46]
  2974. *** Failers
  2975. No match
  2976. Wall
  2977. No match
  2978. Zebra
  2979. No match
  2980. 42
  2981. No match
  2982. [abcd]
  2983. No match
  2984. ]abcd[
  2985. No match
  2986. /^[W-\]46]/
  2987. W46]789
  2988. 0: W
  2989. Wall
  2990. 0: W
  2991. Zebra
  2992. 0: Z
  2993. Xylophone
  2994. 0: X
  2995. 42
  2996. 0: 4
  2997. [abcd]
  2998. 0: [
  2999. ]abcd[
  3000. 0: ]
  3001. \\backslash
  3002. 0: \
  3003. *** Failers
  3004. No match
  3005. -46]789
  3006. No match
  3007. well
  3008. No match
  3009. /\d\d\/\d\d\/\d\d\d\d/
  3010. 01/01/2000
  3011. 0: 01/01/2000
  3012. /word (?:[a-zA-Z0-9]+ ){0,10}otherword/
  3013. word cat dog elephant mussel cow horse canary baboon snake shark otherword
  3014. 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
  3015. word cat dog elephant mussel cow horse canary baboon snake shark
  3016. No match
  3017. /word (?:[a-zA-Z0-9]+ ){0,300}otherword/
  3018. word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
  3019. No match
  3020. /^(a){0,0}/
  3021. bcd
  3022. 0:
  3023. abc
  3024. 0:
  3025. aab
  3026. 0:
  3027. /^(a){0,1}/
  3028. bcd
  3029. 0:
  3030. abc
  3031. 0: a
  3032. 1:
  3033. aab
  3034. 0: a
  3035. 1:
  3036. /^(a){0,2}/
  3037. bcd
  3038. 0:
  3039. abc
  3040. 0: a
  3041. 1:
  3042. aab
  3043. 0: aa
  3044. 1: a
  3045. 2:
  3046. /^(a){0,3}/
  3047. bcd
  3048. 0:
  3049. abc
  3050. 0: a
  3051. 1:
  3052. aab
  3053. 0: aa
  3054. 1: a
  3055. 2:
  3056. aaa
  3057. 0: aaa
  3058. 1: aa
  3059. 2: a
  3060. 3:
  3061. /^(a){0,}/
  3062. bcd
  3063. 0:
  3064. abc
  3065. 0: a
  3066. 1:
  3067. aab
  3068. 0: aa
  3069. 1: a
  3070. 2:
  3071. aaa
  3072. 0: aaa
  3073. 1: aa
  3074. 2: a
  3075. 3:
  3076. aaaaaaaa
  3077. 0: aaaaaaaa
  3078. 1: aaaaaaa
  3079. 2: aaaaaa
  3080. 3: aaaaa
  3081. 4: aaaa
  3082. 5: aaa
  3083. 6: aa
  3084. 7: a
  3085. 8:
  3086. /^(a){1,1}/
  3087. bcd
  3088. No match
  3089. abc
  3090. 0: a
  3091. aab
  3092. 0: a
  3093. /^(a){1,2}/
  3094. bcd
  3095. No match
  3096. abc
  3097. 0: a
  3098. aab
  3099. 0: aa
  3100. 1: a
  3101. /^(a){1,3}/
  3102. bcd
  3103. No match
  3104. abc
  3105. 0: a
  3106. aab
  3107. 0: aa
  3108. 1: a
  3109. aaa
  3110. 0: aaa
  3111. 1: aa
  3112. 2: a
  3113. /^(a){1,}/
  3114. bcd
  3115. No match
  3116. abc
  3117. 0: a
  3118. aab
  3119. 0: aa
  3120. 1: a
  3121. aaa
  3122. 0: aaa
  3123. 1: aa
  3124. 2: a
  3125. aaaaaaaa
  3126. 0: aaaaaaaa
  3127. 1: aaaaaaa
  3128. 2: aaaaaa
  3129. 3: aaaaa
  3130. 4: aaaa
  3131. 5: aaa
  3132. 6: aa
  3133. 7: a
  3134. /.*\.gif/
  3135. borfle\nbib.gif\nno
  3136. 0: bib.gif
  3137. /.{0,}\.gif/
  3138. borfle\nbib.gif\nno
  3139. 0: bib.gif
  3140. /.*\.gif/m
  3141. borfle\nbib.gif\nno
  3142. 0: bib.gif
  3143. /.*\.gif/s
  3144. borfle\nbib.gif\nno
  3145. 0: borfle\x0abib.gif
  3146. /.*\.gif/ms
  3147. borfle\nbib.gif\nno
  3148. 0: borfle\x0abib.gif
  3149. /.*$/
  3150. borfle\nbib.gif\nno
  3151. 0: no
  3152. /.*$/m
  3153. borfle\nbib.gif\nno
  3154. 0: borfle
  3155. /.*$/s
  3156. borfle\nbib.gif\nno
  3157. 0: borfle\x0abib.gif\x0ano
  3158. /.*$/ms
  3159. borfle\nbib.gif\nno
  3160. 0: borfle\x0abib.gif\x0ano
  3161. 1: borfle\x0abib.gif
  3162. 2: borfle
  3163. /.*$/
  3164. borfle\nbib.gif\nno\n
  3165. 0: no
  3166. /.*$/m
  3167. borfle\nbib.gif\nno\n
  3168. 0: borfle
  3169. /.*$/s
  3170. borfle\nbib.gif\nno\n
  3171. 0: borfle\x0abib.gif\x0ano\x0a
  3172. 1: borfle\x0abib.gif\x0ano
  3173. /.*$/ms
  3174. borfle\nbib.gif\nno\n
  3175. 0: borfle\x0abib.gif\x0ano\x0a
  3176. 1: borfle\x0abib.gif\x0ano
  3177. 2: borfle\x0abib.gif
  3178. 3: borfle
  3179. /(.*X|^B)/
  3180. abcde\n1234Xyz
  3181. 0: 1234X
  3182. BarFoo
  3183. 0: B
  3184. *** Failers
  3185. No match
  3186. abcde\nBar
  3187. No match
  3188. /(.*X|^B)/m
  3189. abcde\n1234Xyz
  3190. 0: 1234X
  3191. BarFoo
  3192. 0: B
  3193. abcde\nBar
  3194. 0: B
  3195. /(.*X|^B)/s
  3196. abcde\n1234Xyz
  3197. 0: abcde\x0a1234X
  3198. BarFoo
  3199. 0: B
  3200. *** Failers
  3201. No match
  3202. abcde\nBar
  3203. No match
  3204. /(.*X|^B)/ms
  3205. abcde\n1234Xyz
  3206. 0: abcde\x0a1234X
  3207. BarFoo
  3208. 0: B
  3209. abcde\nBar
  3210. 0: B
  3211. /(?s)(.*X|^B)/
  3212. abcde\n1234Xyz
  3213. 0: abcde\x0a1234X
  3214. BarFoo
  3215. 0: B
  3216. *** Failers
  3217. No match
  3218. abcde\nBar
  3219. No match
  3220. /(?s:.*X|^B)/
  3221. abcde\n1234Xyz
  3222. 0: abcde\x0a1234X
  3223. BarFoo
  3224. 0: B
  3225. *** Failers
  3226. No match
  3227. abcde\nBar
  3228. No match
  3229. /^.*B/
  3230. **** Failers
  3231. No match
  3232. abc\nB
  3233. No match
  3234. /(?s)^.*B/
  3235. abc\nB
  3236. 0: abc\x0aB
  3237. /(?m)^.*B/
  3238. abc\nB
  3239. 0: B
  3240. /(?ms)^.*B/
  3241. abc\nB
  3242. 0: abc\x0aB
  3243. /(?ms)^B/
  3244. abc\nB
  3245. 0: B
  3246. /(?s)B$/
  3247. B\n
  3248. 0: B
  3249. /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
  3250. 123456654321
  3251. 0: 123456654321
  3252. /^\d\d\d\d\d\d\d\d\d\d\d\d/
  3253. 123456654321
  3254. 0: 123456654321
  3255. /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
  3256. 123456654321
  3257. 0: 123456654321
  3258. /^[abc]{12}/
  3259. abcabcabcabc
  3260. 0: abcabcabcabc
  3261. /^[a-c]{12}/
  3262. abcabcabcabc
  3263. 0: abcabcabcabc
  3264. /^(a|b|c){12}/
  3265. abcabcabcabc
  3266. 0: abcabcabcabc
  3267. /^[abcdefghijklmnopqrstuvwxy0123456789]/
  3268. n
  3269. 0: n
  3270. *** Failers
  3271. No match
  3272. z
  3273. No match
  3274. /abcde{0,0}/
  3275. abcd
  3276. 0: abcd
  3277. *** Failers
  3278. No match
  3279. abce
  3280. No match
  3281. /ab[cd]{0,0}e/
  3282. abe
  3283. 0: abe
  3284. *** Failers
  3285. No match
  3286. abcde
  3287. No match
  3288. /ab(c){0,0}d/
  3289. abd
  3290. 0: abd
  3291. *** Failers
  3292. No match
  3293. abcd
  3294. No match
  3295. /a(b*)/
  3296. a
  3297. 0: a
  3298. ab
  3299. 0: ab
  3300. abbbb
  3301. 0: abbbb
  3302. *** Failers
  3303. 0: a
  3304. bbbbb
  3305. No match
  3306. /ab\d{0}e/
  3307. abe
  3308. 0: abe
  3309. *** Failers
  3310. No match
  3311. ab1e
  3312. No match
  3313. /"([^\\"]+|\\.)*"/
  3314. the \"quick\" brown fox
  3315. 0: "quick"
  3316. \"the \\\"quick\\\" brown fox\"
  3317. 0: "the \"quick\" brown fox"
  3318. /.*?/g+
  3319. abc
  3320. 0: abc
  3321. 0+
  3322. 1: ab
  3323. 2: a
  3324. 3:
  3325. 0:
  3326. 0+
  3327. /\b/g+
  3328. abc
  3329. 0:
  3330. 0+ abc
  3331. 0:
  3332. 0+
  3333. /\b/+g
  3334. abc
  3335. 0:
  3336. 0+ abc
  3337. 0:
  3338. 0+
  3339. //g
  3340. abc
  3341. 0:
  3342. 0:
  3343. 0:
  3344. 0:
  3345. /<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>/is
  3346. <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
  3347. 0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
  3348. /a[^a]b/
  3349. acb
  3350. 0: acb
  3351. a\nb
  3352. 0: a\x0ab
  3353. /a.b/
  3354. acb
  3355. 0: acb
  3356. *** Failers
  3357. No match
  3358. a\nb
  3359. No match
  3360. /a[^a]b/s
  3361. acb
  3362. 0: acb
  3363. a\nb
  3364. 0: a\x0ab
  3365. /a.b/s
  3366. acb
  3367. 0: acb
  3368. a\nb
  3369. 0: a\x0ab
  3370. /^(b+?|a){1,2}?c/
  3371. bac
  3372. 0: bac
  3373. bbac
  3374. 0: bbac
  3375. bbbac
  3376. 0: bbbac
  3377. bbbbac
  3378. 0: bbbbac
  3379. bbbbbac
  3380. 0: bbbbbac
  3381. /^(b+|a){1,2}?c/
  3382. bac
  3383. 0: bac
  3384. bbac
  3385. 0: bbac
  3386. bbbac
  3387. 0: bbbac
  3388. bbbbac
  3389. 0: bbbbac
  3390. bbbbbac
  3391. 0: bbbbbac
  3392. /(?!\A)x/m
  3393. x\nb\n
  3394. No match
  3395. a\bx\n
  3396. 0: x
  3397. /\x0{ab}/
  3398. \0{ab}
  3399. 0: \x00{ab}
  3400. /(A|B)*?CD/
  3401. CD
  3402. 0: CD
  3403. /(A|B)*CD/
  3404. CD
  3405. 0: CD
  3406. /(?<!bar)foo/
  3407. foo
  3408. 0: foo
  3409. catfood
  3410. 0: foo
  3411. arfootle
  3412. 0: foo
  3413. rfoosh
  3414. 0: foo
  3415. *** Failers
  3416. No match
  3417. barfoo
  3418. No match
  3419. towbarfoo
  3420. No match
  3421. /\w{3}(?<!bar)foo/
  3422. catfood
  3423. 0: catfoo
  3424. *** Failers
  3425. No match
  3426. foo
  3427. No match
  3428. barfoo
  3429. No match
  3430. towbarfoo
  3431. No match
  3432. /(?<=(foo)a)bar/
  3433. fooabar
  3434. 0: bar
  3435. *** Failers
  3436. No match
  3437. bar
  3438. No match
  3439. foobbar
  3440. No match
  3441. /\Aabc\z/m
  3442. abc
  3443. 0: abc
  3444. *** Failers
  3445. No match
  3446. abc\n
  3447. No match
  3448. qqq\nabc
  3449. No match
  3450. abc\nzzz
  3451. No match
  3452. qqq\nabc\nzzz
  3453. No match
  3454. "(?>.*/)foo"
  3455. /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
  3456. No match
  3457. "(?>.*/)foo"
  3458. /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
  3459. 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
  3460. /(?>(\.\d\d[1-9]?))\d+/
  3461. 1.230003938
  3462. 0: .230003938
  3463. 1.875000282
  3464. 0: .875000282
  3465. *** Failers
  3466. No match
  3467. 1.235
  3468. No match
  3469. /^((?>\w+)|(?>\s+))*$/
  3470. now is the time for all good men to come to the aid of the party
  3471. 0: now is the time for all good men to come to the aid of the party
  3472. *** Failers
  3473. No match
  3474. this is not a line with only words and spaces!
  3475. No match
  3476. /(\d+)(\w)/
  3477. 12345a
  3478. 0: 12345a
  3479. 1: 12345
  3480. 2: 1234
  3481. 3: 123
  3482. 4: 12
  3483. 12345+
  3484. 0: 12345
  3485. 1: 1234
  3486. 2: 123
  3487. 3: 12
  3488. /((?>\d+))(\w)/
  3489. 12345a
  3490. 0: 12345a
  3491. *** Failers
  3492. No match
  3493. 12345+
  3494. No match
  3495. /(?>a+)b/
  3496. aaab
  3497. 0: aaab
  3498. /((?>a+)b)/
  3499. aaab
  3500. 0: aaab
  3501. /(?>(a+))b/
  3502. aaab
  3503. 0: aaab
  3504. /(?>b)+/
  3505. aaabbbccc
  3506. 0: bbb
  3507. 1: bb
  3508. 2: b
  3509. /(?>a+|b+|c+)*c/
  3510. aaabbbbccccd
  3511. 0: aaabbbbcccc
  3512. 1: aaabbbbc
  3513. /(a+|b+|c+)*c/
  3514. aaabbbbccccd
  3515. 0: aaabbbbcccc
  3516. 1: aaabbbbccc
  3517. 2: aaabbbbcc
  3518. 3: aaabbbbc
  3519. /((?>[^()]+)|\([^()]*\))+/
  3520. ((abc(ade)ufh()()x
  3521. 0: abc(ade)ufh()()x
  3522. 1: abc(ade)ufh()()
  3523. 2: abc(ade)ufh()
  3524. 3: abc(ade)ufh
  3525. 4: abc(ade)
  3526. 5: abc
  3527. /\(((?>[^()]+)|\([^()]+\))+\)/
  3528. (abc)
  3529. 0: (abc)
  3530. (abc(def)xyz)
  3531. 0: (abc(def)xyz)
  3532. *** Failers
  3533. No match
  3534. ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  3535. No match
  3536. /a(?-i)b/i
  3537. ab
  3538. 0: ab
  3539. Ab
  3540. 0: Ab
  3541. *** Failers
  3542. No match
  3543. aB
  3544. No match
  3545. AB
  3546. No match
  3547. /(a (?x)b c)d e/
  3548. a bcd e
  3549. 0: a bcd e
  3550. *** Failers
  3551. No match
  3552. a b cd e
  3553. No match
  3554. abcd e
  3555. No match
  3556. a bcde
  3557. No match
  3558. /(a b(?x)c d (?-x)e f)/
  3559. a bcde f
  3560. 0: a bcde f
  3561. *** Failers
  3562. No match
  3563. abcdef
  3564. No match
  3565. /(a(?i)b)c/
  3566. abc
  3567. 0: abc
  3568. aBc
  3569. 0: aBc
  3570. *** Failers
  3571. No match
  3572. abC
  3573. No match
  3574. aBC
  3575. No match
  3576. Abc
  3577. No match
  3578. ABc
  3579. No match
  3580. ABC
  3581. No match
  3582. AbC
  3583. No match
  3584. /a(?i:b)c/
  3585. abc
  3586. 0: abc
  3587. aBc
  3588. 0: aBc
  3589. *** Failers
  3590. No match
  3591. ABC
  3592. No match
  3593. abC
  3594. No match
  3595. aBC
  3596. No match
  3597. /a(?i:b)*c/
  3598. aBc
  3599. 0: aBc
  3600. aBBc
  3601. 0: aBBc
  3602. *** Failers
  3603. No match
  3604. aBC
  3605. No match
  3606. aBBC
  3607. No match
  3608. /a(?=b(?i)c)\w\wd/
  3609. abcd
  3610. 0: abcd
  3611. abCd
  3612. 0: abCd
  3613. *** Failers
  3614. No match
  3615. aBCd
  3616. No match
  3617. abcD
  3618. No match
  3619. /(?s-i:more.*than).*million/i
  3620. more than million
  3621. 0: more than million
  3622. more than MILLION
  3623. 0: more than MILLION
  3624. more \n than Million
  3625. 0: more \x0a than Million
  3626. *** Failers
  3627. No match
  3628. MORE THAN MILLION
  3629. No match
  3630. more \n than \n million
  3631. No match
  3632. /(?:(?s-i)more.*than).*million/i
  3633. more than million
  3634. 0: more than million
  3635. more than MILLION
  3636. 0: more than MILLION
  3637. more \n than Million
  3638. 0: more \x0a than Million
  3639. *** Failers
  3640. No match
  3641. MORE THAN MILLION
  3642. No match
  3643. more \n than \n million
  3644. No match
  3645. /(?>a(?i)b+)+c/
  3646. abc
  3647. 0: abc
  3648. aBbc
  3649. 0: aBbc
  3650. aBBc
  3651. 0: aBBc
  3652. *** Failers
  3653. No match
  3654. Abc
  3655. No match
  3656. abAb
  3657. No match
  3658. abbC
  3659. No match
  3660. /(?=a(?i)b)\w\wc/
  3661. abc
  3662. 0: abc
  3663. aBc
  3664. 0: aBc
  3665. *** Failers
  3666. No match
  3667. Ab
  3668. No match
  3669. abC
  3670. No match
  3671. aBC
  3672. No match
  3673. /(?<=a(?i)b)(\w\w)c/
  3674. abxxc
  3675. 0: xxc
  3676. aBxxc
  3677. 0: xxc
  3678. *** Failers
  3679. No match
  3680. Abxxc
  3681. No match
  3682. ABxxc
  3683. No match
  3684. abxxC
  3685. No match
  3686. /^(?(?=abc)\w{3}:|\d\d)$/
  3687. abc:
  3688. 0: abc:
  3689. 12
  3690. 0: 12
  3691. *** Failers
  3692. No match
  3693. 123
  3694. No match
  3695. xyz
  3696. No match
  3697. /^(?(?!abc)\d\d|\w{3}:)$/
  3698. abc:
  3699. 0: abc:
  3700. 12
  3701. 0: 12
  3702. *** Failers
  3703. No match
  3704. 123
  3705. No match
  3706. xyz
  3707. No match
  3708. /(?(?<=foo)bar|cat)/
  3709. foobar
  3710. 0: bar
  3711. cat
  3712. 0: cat
  3713. fcat
  3714. 0: cat
  3715. focat
  3716. 0: cat
  3717. *** Failers
  3718. No match
  3719. foocat
  3720. No match
  3721. /(?(?<!foo)cat|bar)/
  3722. foobar
  3723. 0: bar
  3724. cat
  3725. 0: cat
  3726. fcat
  3727. 0: cat
  3728. focat
  3729. 0: cat
  3730. *** Failers
  3731. No match
  3732. foocat
  3733. No match
  3734. /(?>a*)*/
  3735. a
  3736. 0: a
  3737. 1:
  3738. aa
  3739. 0: aa
  3740. 1:
  3741. aaaa
  3742. 0: aaaa
  3743. 1:
  3744. /(abc|)+/
  3745. abc
  3746. 0: abc
  3747. 1:
  3748. abcabc
  3749. 0: abcabc
  3750. 1: abc
  3751. 2:
  3752. abcabcabc
  3753. 0: abcabcabc
  3754. 1: abcabc
  3755. 2: abc
  3756. 3:
  3757. xyz
  3758. 0:
  3759. /([a]*)*/
  3760. a
  3761. 0: a
  3762. 1:
  3763. aaaaa
  3764. 0: aaaaa
  3765. 1: aaaa
  3766. 2: aaa
  3767. 3: aa
  3768. 4: a
  3769. 5:
  3770. /([ab]*)*/
  3771. a
  3772. 0: a
  3773. 1:
  3774. b
  3775. 0: b
  3776. 1:
  3777. ababab
  3778. 0: ababab
  3779. 1: ababa
  3780. 2: abab
  3781. 3: aba
  3782. 4: ab
  3783. 5: a
  3784. 6:
  3785. aaaabcde
  3786. 0: aaaab
  3787. 1: aaaa
  3788. 2: aaa
  3789. 3: aa
  3790. 4: a
  3791. 5:
  3792. bbbb
  3793. 0: bbbb
  3794. 1: bbb
  3795. 2: bb
  3796. 3: b
  3797. 4:
  3798. /([^a]*)*/
  3799. b
  3800. 0: b
  3801. 1:
  3802. bbbb
  3803. 0: bbbb
  3804. 1: bbb
  3805. 2: bb
  3806. 3: b
  3807. 4:
  3808. aaa
  3809. 0:
  3810. /([^ab]*)*/
  3811. cccc
  3812. 0: cccc
  3813. 1: ccc
  3814. 2: cc
  3815. 3: c
  3816. 4:
  3817. abab
  3818. 0:
  3819. /([a]*?)*/
  3820. a
  3821. 0: a
  3822. 1:
  3823. aaaa
  3824. 0: aaaa
  3825. 1: aaa
  3826. 2: aa
  3827. 3: a
  3828. 4:
  3829. /([ab]*?)*/
  3830. a
  3831. 0: a
  3832. 1:
  3833. b
  3834. 0: b
  3835. 1:
  3836. abab
  3837. 0: abab
  3838. 1: aba
  3839. 2: ab
  3840. 3: a
  3841. 4:
  3842. baba
  3843. 0: baba
  3844. 1: bab
  3845. 2: ba
  3846. 3: b
  3847. 4:
  3848. /([^a]*?)*/
  3849. b
  3850. 0: b
  3851. 1:
  3852. bbbb
  3853. 0: bbbb
  3854. 1: bbb
  3855. 2: bb
  3856. 3: b
  3857. 4:
  3858. aaa
  3859. 0:
  3860. /([^ab]*?)*/
  3861. c
  3862. 0: c
  3863. 1:
  3864. cccc
  3865. 0: cccc
  3866. 1: ccc
  3867. 2: cc
  3868. 3: c
  3869. 4:
  3870. baba
  3871. 0:
  3872. /(?>a*)*/
  3873. a
  3874. 0: a
  3875. 1:
  3876. aaabcde
  3877. 0: aaa
  3878. 1:
  3879. /((?>a*))*/
  3880. aaaaa
  3881. 0: aaaaa
  3882. 1:
  3883. aabbaa
  3884. 0: aa
  3885. 1:
  3886. /((?>a*?))*/
  3887. aaaaa
  3888. 0: aaaaa
  3889. 1:
  3890. aabbaa
  3891. 0: aa
  3892. 1:
  3893. /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x
  3894. 12-sep-98
  3895. 0: 12-sep-98
  3896. 12-09-98
  3897. 0: 12-09-98
  3898. *** Failers
  3899. No match
  3900. sep-12-98
  3901. No match
  3902. /(?i:saturday|sunday)/
  3903. saturday
  3904. 0: saturday
  3905. sunday
  3906. 0: sunday
  3907. Saturday
  3908. 0: Saturday
  3909. Sunday
  3910. 0: Sunday
  3911. SATURDAY
  3912. 0: SATURDAY
  3913. SUNDAY
  3914. 0: SUNDAY
  3915. SunDay
  3916. 0: SunDay
  3917. /(a(?i)bc|BB)x/
  3918. abcx
  3919. 0: abcx
  3920. aBCx
  3921. 0: aBCx
  3922. bbx
  3923. 0: bbx
  3924. BBx
  3925. 0: BBx
  3926. *** Failers
  3927. No match
  3928. abcX
  3929. No match
  3930. aBCX
  3931. No match
  3932. bbX
  3933. No match
  3934. BBX
  3935. No match
  3936. /^([ab](?i)[cd]|[ef])/
  3937. ac
  3938. 0: ac
  3939. aC
  3940. 0: aC
  3941. bD
  3942. 0: bD
  3943. elephant
  3944. 0: e
  3945. Europe
  3946. 0: E
  3947. frog
  3948. 0: f
  3949. France
  3950. 0: F
  3951. *** Failers
  3952. No match
  3953. Africa
  3954. No match
  3955. /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
  3956. ab
  3957. 0: ab
  3958. aBd
  3959. 0: aBd
  3960. xy
  3961. 0: xy
  3962. xY
  3963. 0: xY
  3964. zebra
  3965. 0: z
  3966. Zambesi
  3967. 0: Z
  3968. *** Failers
  3969. No match
  3970. aCD
  3971. No match
  3972. XY
  3973. No match
  3974. /(?<=foo\n)^bar/m
  3975. foo\nbar
  3976. 0: bar
  3977. *** Failers
  3978. No match
  3979. bar
  3980. No match
  3981. baz\nbar
  3982. No match
  3983. /(?<=(?<!foo)bar)baz/
  3984. barbaz
  3985. 0: baz
  3986. barbarbaz
  3987. 0: baz
  3988. koobarbaz
  3989. 0: baz
  3990. *** Failers
  3991. No match
  3992. baz
  3993. No match
  3994. foobarbaz
  3995. No match
  3996. /The following tests are taken from the Perl 5.005 test suite; some of them/
  3997. /are compatible with 5.004, but I'd rather not have to sort them out./
  3998. No match
  3999. /abc/
  4000. abc
  4001. 0: abc
  4002. xabcy
  4003. 0: abc
  4004. ababc
  4005. 0: abc
  4006. *** Failers
  4007. No match
  4008. xbc
  4009. No match
  4010. axc
  4011. No match
  4012. abx
  4013. No match
  4014. /ab*c/
  4015. abc
  4016. 0: abc
  4017. /ab*bc/
  4018. abc
  4019. 0: abc
  4020. abbc
  4021. 0: abbc
  4022. abbbbc
  4023. 0: abbbbc
  4024. /.{1}/
  4025. abbbbc
  4026. 0: a
  4027. /.{3,4}/
  4028. abbbbc
  4029. 0: abbb
  4030. /ab{0,}bc/
  4031. abbbbc
  4032. 0: abbbbc
  4033. /ab+bc/
  4034. abbc
  4035. 0: abbc
  4036. *** Failers
  4037. No match
  4038. abc
  4039. No match
  4040. abq
  4041. No match
  4042. /ab+bc/
  4043. abbbbc
  4044. 0: abbbbc
  4045. /ab{1,}bc/
  4046. abbbbc
  4047. 0: abbbbc
  4048. /ab{1,3}bc/
  4049. abbbbc
  4050. 0: abbbbc
  4051. /ab{3,4}bc/
  4052. abbbbc
  4053. 0: abbbbc
  4054. /ab{4,5}bc/
  4055. *** Failers
  4056. No match
  4057. abq
  4058. No match
  4059. abbbbc
  4060. No match
  4061. /ab?bc/
  4062. abbc
  4063. 0: abbc
  4064. abc
  4065. 0: abc
  4066. /ab{0,1}bc/
  4067. abc
  4068. 0: abc
  4069. /ab?bc/
  4070. /ab?c/
  4071. abc
  4072. 0: abc
  4073. /ab{0,1}c/
  4074. abc
  4075. 0: abc
  4076. /^abc$/
  4077. abc
  4078. 0: abc
  4079. *** Failers
  4080. No match
  4081. abbbbc
  4082. No match
  4083. abcc
  4084. No match
  4085. /^abc/
  4086. abcc
  4087. 0: abc
  4088. /^abc$/
  4089. /abc$/
  4090. aabc
  4091. 0: abc
  4092. *** Failers
  4093. No match
  4094. aabc
  4095. 0: abc
  4096. aabcd
  4097. No match
  4098. /^/
  4099. abc
  4100. 0:
  4101. /$/
  4102. abc
  4103. 0:
  4104. /a.c/
  4105. abc
  4106. 0: abc
  4107. axc
  4108. 0: axc
  4109. /a.*c/
  4110. axyzc
  4111. 0: axyzc
  4112. /a[bc]d/
  4113. abd
  4114. 0: abd
  4115. *** Failers
  4116. No match
  4117. axyzd
  4118. No match
  4119. abc
  4120. No match
  4121. /a[b-d]e/
  4122. ace
  4123. 0: ace
  4124. /a[b-d]/
  4125. aac
  4126. 0: ac
  4127. /a[-b]/
  4128. a-
  4129. 0: a-
  4130. /a[b-]/
  4131. a-
  4132. 0: a-
  4133. /a]/
  4134. a]
  4135. 0: a]
  4136. /a[]]b/
  4137. a]b
  4138. 0: a]b
  4139. /a[^bc]d/
  4140. aed
  4141. 0: aed
  4142. *** Failers
  4143. No match
  4144. abd
  4145. No match
  4146. abd
  4147. No match
  4148. /a[^-b]c/
  4149. adc
  4150. 0: adc
  4151. /a[^]b]c/
  4152. adc
  4153. 0: adc
  4154. *** Failers
  4155. No match
  4156. a-c
  4157. 0: a-c
  4158. a]c
  4159. No match
  4160. /\ba\b/
  4161. a-
  4162. 0: a
  4163. -a
  4164. 0: a
  4165. -a-
  4166. 0: a
  4167. /\by\b/
  4168. *** Failers
  4169. No match
  4170. xy
  4171. No match
  4172. yz
  4173. No match
  4174. xyz
  4175. No match
  4176. /\Ba\B/
  4177. *** Failers
  4178. 0: a
  4179. a-
  4180. No match
  4181. -a
  4182. No match
  4183. -a-
  4184. No match
  4185. /\By\b/
  4186. xy
  4187. 0: y
  4188. /\by\B/
  4189. yz
  4190. 0: y
  4191. /\By\B/
  4192. xyz
  4193. 0: y
  4194. /\w/
  4195. a
  4196. 0: a
  4197. /\W/
  4198. -
  4199. 0: -
  4200. *** Failers
  4201. 0: *
  4202. -
  4203. 0: -
  4204. a
  4205. No match
  4206. /a\sb/
  4207. a b
  4208. 0: a b
  4209. /a\Sb/
  4210. a-b
  4211. 0: a-b
  4212. *** Failers
  4213. No match
  4214. a-b
  4215. 0: a-b
  4216. a b
  4217. No match
  4218. /\d/
  4219. 1
  4220. 0: 1
  4221. /\D/
  4222. -
  4223. 0: -
  4224. *** Failers
  4225. 0: *
  4226. -
  4227. 0: -
  4228. 1
  4229. No match
  4230. /[\w]/
  4231. a
  4232. 0: a
  4233. /[\W]/
  4234. -
  4235. 0: -
  4236. *** Failers
  4237. 0: *
  4238. -
  4239. 0: -
  4240. a
  4241. No match
  4242. /a[\s]b/
  4243. a b
  4244. 0: a b
  4245. /a[\S]b/
  4246. a-b
  4247. 0: a-b
  4248. *** Failers
  4249. No match
  4250. a-b
  4251. 0: a-b
  4252. a b
  4253. No match
  4254. /[\d]/
  4255. 1
  4256. 0: 1
  4257. /[\D]/
  4258. -
  4259. 0: -
  4260. *** Failers
  4261. 0: *
  4262. -
  4263. 0: -
  4264. 1
  4265. No match
  4266. /ab|cd/
  4267. abc
  4268. 0: ab
  4269. abcd
  4270. 0: ab
  4271. /()ef/
  4272. def
  4273. 0: ef
  4274. /$b/
  4275. /a\(b/
  4276. a(b
  4277. 0: a(b
  4278. /a\(*b/
  4279. ab
  4280. 0: ab
  4281. a((b
  4282. 0: a((b
  4283. /a\\b/
  4284. a\b
  4285. No match
  4286. /((a))/
  4287. abc
  4288. 0: a
  4289. /(a)b(c)/
  4290. abc
  4291. 0: abc
  4292. /a+b+c/
  4293. aabbabc
  4294. 0: abc
  4295. /a{1,}b{1,}c/
  4296. aabbabc
  4297. 0: abc
  4298. /a.+?c/
  4299. abcabc
  4300. 0: abcabc
  4301. 1: abc
  4302. /(a+|b)*/
  4303. ab
  4304. 0: ab
  4305. 1: a
  4306. 2:
  4307. /(a+|b){0,}/
  4308. ab
  4309. 0: ab
  4310. 1: a
  4311. 2:
  4312. /(a+|b)+/
  4313. ab
  4314. 0: ab
  4315. 1: a
  4316. /(a+|b){1,}/
  4317. ab
  4318. 0: ab
  4319. 1: a
  4320. /(a+|b)?/
  4321. ab
  4322. 0: a
  4323. 1:
  4324. /(a+|b){0,1}/
  4325. ab
  4326. 0: a
  4327. 1:
  4328. /[^ab]*/
  4329. cde
  4330. 0: cde
  4331. /abc/
  4332. *** Failers
  4333. No match
  4334. b
  4335. No match
  4336. /a*/
  4337. /([abc])*d/
  4338. abbbcd
  4339. 0: abbbcd
  4340. /([abc])*bcd/
  4341. abcd
  4342. 0: abcd
  4343. /a|b|c|d|e/
  4344. e
  4345. 0: e
  4346. /(a|b|c|d|e)f/
  4347. ef
  4348. 0: ef
  4349. /abcd*efg/
  4350. abcdefg
  4351. 0: abcdefg
  4352. /ab*/
  4353. xabyabbbz
  4354. 0: ab
  4355. xayabbbz
  4356. 0: a
  4357. /(ab|cd)e/
  4358. abcde
  4359. 0: cde
  4360. /[abhgefdc]ij/
  4361. hij
  4362. 0: hij
  4363. /^(ab|cd)e/
  4364. /(abc|)ef/
  4365. abcdef
  4366. 0: ef
  4367. /(a|b)c*d/
  4368. abcd
  4369. 0: bcd
  4370. /(ab|ab*)bc/
  4371. abc
  4372. 0: abc
  4373. /a([bc]*)c*/
  4374. abc
  4375. 0: abc
  4376. 1: a
  4377. /a([bc]*)(c*d)/
  4378. abcd
  4379. 0: abcd
  4380. /a([bc]+)(c*d)/
  4381. abcd
  4382. 0: abcd
  4383. /a([bc]*)(c+d)/
  4384. abcd
  4385. 0: abcd
  4386. /a[bcd]*dcdcde/
  4387. adcdcde
  4388. 0: adcdcde
  4389. /a[bcd]+dcdcde/
  4390. *** Failers
  4391. No match
  4392. abcde
  4393. No match
  4394. adcdcde
  4395. No match
  4396. /(ab|a)b*c/
  4397. abc
  4398. 0: abc
  4399. /((a)(b)c)(d)/
  4400. abcd
  4401. 0: abcd
  4402. /[a-zA-Z_][a-zA-Z0-9_]*/
  4403. alpha
  4404. 0: alpha
  4405. /^a(bc+|b[eh])g|.h$/
  4406. abh
  4407. 0: bh
  4408. /(bc+d$|ef*g.|h?i(j|k))/
  4409. effgz
  4410. 0: effgz
  4411. ij
  4412. 0: ij
  4413. reffgz
  4414. 0: effgz
  4415. *** Failers
  4416. No match
  4417. effg
  4418. No match
  4419. bcdd
  4420. No match
  4421. /((((((((((a))))))))))/
  4422. a
  4423. 0: a
  4424. /(((((((((a)))))))))/
  4425. a
  4426. 0: a
  4427. /multiple words of text/
  4428. *** Failers
  4429. No match
  4430. aa
  4431. No match
  4432. uh-uh
  4433. No match
  4434. /multiple words/
  4435. multiple words, yeah
  4436. 0: multiple words
  4437. /(.*)c(.*)/
  4438. abcde
  4439. 0: abcde
  4440. /\((.*), (.*)\)/
  4441. (a, b)
  4442. 0: (a, b)
  4443. /[k]/
  4444. /abcd/
  4445. abcd
  4446. 0: abcd
  4447. /a(bc)d/
  4448. abcd
  4449. 0: abcd
  4450. /a[-]?c/
  4451. ac
  4452. 0: ac
  4453. /abc/i
  4454. ABC
  4455. 0: ABC
  4456. XABCY
  4457. 0: ABC
  4458. ABABC
  4459. 0: ABC
  4460. *** Failers
  4461. No match
  4462. aaxabxbaxbbx
  4463. No match
  4464. XBC
  4465. No match
  4466. AXC
  4467. No match
  4468. ABX
  4469. No match
  4470. /ab*c/i
  4471. ABC
  4472. 0: ABC
  4473. /ab*bc/i
  4474. ABC
  4475. 0: ABC
  4476. ABBC
  4477. 0: ABBC
  4478. /ab*?bc/i
  4479. ABBBBC
  4480. 0: ABBBBC
  4481. /ab{0,}?bc/i
  4482. ABBBBC
  4483. 0: ABBBBC
  4484. /ab+?bc/i
  4485. ABBC
  4486. 0: ABBC
  4487. /ab+bc/i
  4488. *** Failers
  4489. No match
  4490. ABC
  4491. No match
  4492. ABQ
  4493. No match
  4494. /ab{1,}bc/i
  4495. /ab+bc/i
  4496. ABBBBC
  4497. 0: ABBBBC
  4498. /ab{1,}?bc/i
  4499. ABBBBC
  4500. 0: ABBBBC
  4501. /ab{1,3}?bc/i
  4502. ABBBBC
  4503. 0: ABBBBC
  4504. /ab{3,4}?bc/i
  4505. ABBBBC
  4506. 0: ABBBBC
  4507. /ab{4,5}?bc/i
  4508. *** Failers
  4509. No match
  4510. ABQ
  4511. No match
  4512. ABBBBC
  4513. No match
  4514. /ab??bc/i
  4515. ABBC
  4516. 0: ABBC
  4517. ABC
  4518. 0: ABC
  4519. /ab{0,1}?bc/i
  4520. ABC
  4521. 0: ABC
  4522. /ab??bc/i
  4523. /ab??c/i
  4524. ABC
  4525. 0: ABC
  4526. /ab{0,1}?c/i
  4527. ABC
  4528. 0: ABC
  4529. /^abc$/i
  4530. ABC
  4531. 0: ABC
  4532. *** Failers
  4533. No match
  4534. ABBBBC
  4535. No match
  4536. ABCC
  4537. No match
  4538. /^abc/i
  4539. ABCC
  4540. 0: ABC
  4541. /^abc$/i
  4542. /abc$/i
  4543. AABC
  4544. 0: ABC
  4545. /^/i
  4546. ABC
  4547. 0:
  4548. /$/i
  4549. ABC
  4550. 0:
  4551. /a.c/i
  4552. ABC
  4553. 0: ABC
  4554. AXC
  4555. 0: AXC
  4556. /a.*?c/i
  4557. AXYZC
  4558. 0: AXYZC
  4559. /a.*c/i
  4560. *** Failers
  4561. No match
  4562. AABC
  4563. 0: AABC
  4564. AXYZD
  4565. No match
  4566. /a[bc]d/i
  4567. ABD
  4568. 0: ABD
  4569. /a[b-d]e/i
  4570. ACE
  4571. 0: ACE
  4572. *** Failers
  4573. No match
  4574. ABC
  4575. No match
  4576. ABD
  4577. No match
  4578. /a[b-d]/i
  4579. AAC
  4580. 0: AC
  4581. /a[-b]/i
  4582. A-
  4583. 0: A-
  4584. /a[b-]/i
  4585. A-
  4586. 0: A-
  4587. /a]/i
  4588. A]
  4589. 0: A]
  4590. /a[]]b/i
  4591. A]B
  4592. 0: A]B
  4593. /a[^bc]d/i
  4594. AED
  4595. 0: AED
  4596. /a[^-b]c/i
  4597. ADC
  4598. 0: ADC
  4599. *** Failers
  4600. No match
  4601. ABD
  4602. No match
  4603. A-C
  4604. No match
  4605. /a[^]b]c/i
  4606. ADC
  4607. 0: ADC
  4608. /ab|cd/i
  4609. ABC
  4610. 0: AB
  4611. ABCD
  4612. 0: AB
  4613. /()ef/i
  4614. DEF
  4615. 0: EF
  4616. /$b/i
  4617. *** Failers
  4618. No match
  4619. A]C
  4620. No match
  4621. B
  4622. No match
  4623. /a\(b/i
  4624. A(B
  4625. 0: A(B
  4626. /a\(*b/i
  4627. AB
  4628. 0: AB
  4629. A((B
  4630. 0: A((B
  4631. /a\\b/i
  4632. A\B
  4633. No match
  4634. /((a))/i
  4635. ABC
  4636. 0: A
  4637. /(a)b(c)/i
  4638. ABC
  4639. 0: ABC
  4640. /a+b+c/i
  4641. AABBABC
  4642. 0: ABC
  4643. /a{1,}b{1,}c/i
  4644. AABBABC
  4645. 0: ABC
  4646. /a.+?c/i
  4647. ABCABC
  4648. 0: ABCABC
  4649. 1: ABC
  4650. /a.*?c/i
  4651. ABCABC
  4652. 0: ABCABC
  4653. 1: ABC
  4654. /a.{0,5}?c/i
  4655. ABCABC
  4656. 0: ABCABC
  4657. 1: ABC
  4658. /(a+|b)*/i
  4659. AB
  4660. 0: AB
  4661. 1: A
  4662. 2:
  4663. /(a+|b){0,}/i
  4664. AB
  4665. 0: AB
  4666. 1: A
  4667. 2:
  4668. /(a+|b)+/i
  4669. AB
  4670. 0: AB
  4671. 1: A
  4672. /(a+|b){1,}/i
  4673. AB
  4674. 0: AB
  4675. 1: A
  4676. /(a+|b)?/i
  4677. AB
  4678. 0: A
  4679. 1:
  4680. /(a+|b){0,1}/i
  4681. AB
  4682. 0: A
  4683. 1:
  4684. /(a+|b){0,1}?/i
  4685. AB
  4686. 0: A
  4687. 1:
  4688. /[^ab]*/i
  4689. CDE
  4690. 0: CDE
  4691. /abc/i
  4692. /a*/i
  4693. /([abc])*d/i
  4694. ABBBCD
  4695. 0: ABBBCD
  4696. /([abc])*bcd/i
  4697. ABCD
  4698. 0: ABCD
  4699. /a|b|c|d|e/i
  4700. E
  4701. 0: E
  4702. /(a|b|c|d|e)f/i
  4703. EF
  4704. 0: EF
  4705. /abcd*efg/i
  4706. ABCDEFG
  4707. 0: ABCDEFG
  4708. /ab*/i
  4709. XABYABBBZ
  4710. 0: AB
  4711. XAYABBBZ
  4712. 0: A
  4713. /(ab|cd)e/i
  4714. ABCDE
  4715. 0: CDE
  4716. /[abhgefdc]ij/i
  4717. HIJ
  4718. 0: HIJ
  4719. /^(ab|cd)e/i
  4720. ABCDE
  4721. No match
  4722. /(abc|)ef/i
  4723. ABCDEF
  4724. 0: EF
  4725. /(a|b)c*d/i
  4726. ABCD
  4727. 0: BCD
  4728. /(ab|ab*)bc/i
  4729. ABC
  4730. 0: ABC
  4731. /a([bc]*)c*/i
  4732. ABC
  4733. 0: ABC
  4734. 1: A
  4735. /a([bc]*)(c*d)/i
  4736. ABCD
  4737. 0: ABCD
  4738. /a([bc]+)(c*d)/i
  4739. ABCD
  4740. 0: ABCD
  4741. /a([bc]*)(c+d)/i
  4742. ABCD
  4743. 0: ABCD
  4744. /a[bcd]*dcdcde/i
  4745. ADCDCDE
  4746. 0: ADCDCDE
  4747. /a[bcd]+dcdcde/i
  4748. /(ab|a)b*c/i
  4749. ABC
  4750. 0: ABC
  4751. /((a)(b)c)(d)/i
  4752. ABCD
  4753. 0: ABCD
  4754. /[a-zA-Z_][a-zA-Z0-9_]*/i
  4755. ALPHA
  4756. 0: ALPHA
  4757. /^a(bc+|b[eh])g|.h$/i
  4758. ABH
  4759. 0: BH
  4760. /(bc+d$|ef*g.|h?i(j|k))/i
  4761. EFFGZ
  4762. 0: EFFGZ
  4763. IJ
  4764. 0: IJ
  4765. REFFGZ
  4766. 0: EFFGZ
  4767. *** Failers
  4768. No match
  4769. ADCDCDE
  4770. No match
  4771. EFFG
  4772. No match
  4773. BCDD
  4774. No match
  4775. /((((((((((a))))))))))/i
  4776. A
  4777. 0: A
  4778. /(((((((((a)))))))))/i
  4779. A
  4780. 0: A
  4781. /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
  4782. A
  4783. 0: A
  4784. /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
  4785. C
  4786. 0: C
  4787. /multiple words of text/i
  4788. *** Failers
  4789. No match
  4790. AA
  4791. No match
  4792. UH-UH
  4793. No match
  4794. /multiple words/i
  4795. MULTIPLE WORDS, YEAH
  4796. 0: MULTIPLE WORDS
  4797. /(.*)c(.*)/i
  4798. ABCDE
  4799. 0: ABCDE
  4800. /\((.*), (.*)\)/i
  4801. (A, B)
  4802. 0: (A, B)
  4803. /[k]/i
  4804. /abcd/i
  4805. ABCD
  4806. 0: ABCD
  4807. /a(bc)d/i
  4808. ABCD
  4809. 0: ABCD
  4810. /a[-]?c/i
  4811. AC
  4812. 0: AC
  4813. /a(?!b)./
  4814. abad
  4815. 0: ad
  4816. /a(?=d)./
  4817. abad
  4818. 0: ad
  4819. /a(?=c|d)./
  4820. abad
  4821. 0: ad
  4822. /a(?:b|c|d)(.)/
  4823. ace
  4824. 0: ace
  4825. /a(?:b|c|d)*(.)/
  4826. ace
  4827. 0: ace
  4828. 1: ac
  4829. /a(?:b|c|d)+?(.)/
  4830. ace
  4831. 0: ace
  4832. acdbcdbe
  4833. 0: acdbcdbe
  4834. 1: acdbcdb
  4835. 2: acdbcd
  4836. 3: acdbc
  4837. 4: acdb
  4838. 5: acd
  4839. /a(?:b|c|d)+(.)/
  4840. acdbcdbe
  4841. 0: acdbcdbe
  4842. 1: acdbcdb
  4843. 2: acdbcd
  4844. 3: acdbc
  4845. 4: acdb
  4846. 5: acd
  4847. /a(?:b|c|d){2}(.)/
  4848. acdbcdbe
  4849. 0: acdb
  4850. /a(?:b|c|d){4,5}(.)/
  4851. acdbcdbe
  4852. 0: acdbcdb
  4853. 1: acdbcd
  4854. /a(?:b|c|d){4,5}?(.)/
  4855. acdbcdbe
  4856. 0: acdbcdb
  4857. 1: acdbcd
  4858. /((foo)|(bar))*/
  4859. foobar
  4860. 0: foobar
  4861. 1: foo
  4862. 2:
  4863. /a(?:b|c|d){6,7}(.)/
  4864. acdbcdbe
  4865. 0: acdbcdbe
  4866. /a(?:b|c|d){6,7}?(.)/
  4867. acdbcdbe
  4868. 0: acdbcdbe
  4869. /a(?:b|c|d){5,6}(.)/
  4870. acdbcdbe
  4871. 0: acdbcdbe
  4872. 1: acdbcdb
  4873. /a(?:b|c|d){5,6}?(.)/
  4874. acdbcdbe
  4875. 0: acdbcdbe
  4876. 1: acdbcdb
  4877. /a(?:b|c|d){5,7}(.)/
  4878. acdbcdbe
  4879. 0: acdbcdbe
  4880. 1: acdbcdb
  4881. /a(?:b|c|d){5,7}?(.)/
  4882. acdbcdbe
  4883. 0: acdbcdbe
  4884. 1: acdbcdb
  4885. /a(?:b|(c|e){1,2}?|d)+?(.)/
  4886. ace
  4887. 0: ace
  4888. /^(.+)?B/
  4889. AB
  4890. 0: AB
  4891. /^([^a-z])|(\^)$/
  4892. .
  4893. 0: .
  4894. /^[<>]&/
  4895. <&OUT
  4896. 0: <&
  4897. /(?:(f)(o)(o)|(b)(a)(r))*/
  4898. foobar
  4899. 0: foobar
  4900. 1: foo
  4901. 2:
  4902. /(?<=a)b/
  4903. ab
  4904. 0: b
  4905. *** Failers
  4906. No match
  4907. cb
  4908. No match
  4909. b
  4910. No match
  4911. /(?<!c)b/
  4912. ab
  4913. 0: b
  4914. b
  4915. 0: b
  4916. b
  4917. 0: b
  4918. /(?:..)*a/
  4919. aba
  4920. 0: aba
  4921. 1: a
  4922. /(?:..)*?a/
  4923. aba
  4924. 0: aba
  4925. 1: a
  4926. /^(){3,5}/
  4927. abc
  4928. 0:
  4929. /^(a+)*ax/
  4930. aax
  4931. 0: aax
  4932. /^((a|b)+)*ax/
  4933. aax
  4934. 0: aax
  4935. /^((a|bc)+)*ax/
  4936. aax
  4937. 0: aax
  4938. /(a|x)*ab/
  4939. cab
  4940. 0: ab
  4941. /(a)*ab/
  4942. cab
  4943. 0: ab
  4944. /(?:(?i)a)b/
  4945. ab
  4946. 0: ab
  4947. /((?i)a)b/
  4948. ab
  4949. 0: ab
  4950. /(?:(?i)a)b/
  4951. Ab
  4952. 0: Ab
  4953. /((?i)a)b/
  4954. Ab
  4955. 0: Ab
  4956. /(?:(?i)a)b/
  4957. *** Failers
  4958. No match
  4959. cb
  4960. No match
  4961. aB
  4962. No match
  4963. /((?i)a)b/
  4964. /(?i:a)b/
  4965. ab
  4966. 0: ab
  4967. /((?i:a))b/
  4968. ab
  4969. 0: ab
  4970. /(?i:a)b/
  4971. Ab
  4972. 0: Ab
  4973. /((?i:a))b/
  4974. Ab
  4975. 0: Ab
  4976. /(?i:a)b/
  4977. *** Failers
  4978. No match
  4979. aB
  4980. No match
  4981. aB
  4982. No match
  4983. /((?i:a))b/
  4984. /(?:(?-i)a)b/i
  4985. ab
  4986. 0: ab
  4987. /((?-i)a)b/i
  4988. ab
  4989. 0: ab
  4990. /(?:(?-i)a)b/i
  4991. aB
  4992. 0: aB
  4993. /((?-i)a)b/i
  4994. aB
  4995. 0: aB
  4996. /(?:(?-i)a)b/i
  4997. *** Failers
  4998. No match
  4999. aB
  5000. 0: aB
  5001. Ab
  5002. No match
  5003. /((?-i)a)b/i
  5004. /(?:(?-i)a)b/i
  5005. aB
  5006. 0: aB
  5007. /((?-i)a)b/i
  5008. aB
  5009. 0: aB
  5010. /(?:(?-i)a)b/i
  5011. *** Failers
  5012. No match
  5013. Ab
  5014. No match
  5015. AB
  5016. No match
  5017. /((?-i)a)b/i
  5018. /(?-i:a)b/i
  5019. ab
  5020. 0: ab
  5021. /((?-i:a))b/i
  5022. ab
  5023. 0: ab
  5024. /(?-i:a)b/i
  5025. aB
  5026. 0: aB
  5027. /((?-i:a))b/i
  5028. aB
  5029. 0: aB
  5030. /(?-i:a)b/i
  5031. *** Failers
  5032. No match
  5033. AB
  5034. No match
  5035. Ab
  5036. No match
  5037. /((?-i:a))b/i
  5038. /(?-i:a)b/i
  5039. aB
  5040. 0: aB
  5041. /((?-i:a))b/i
  5042. aB
  5043. 0: aB
  5044. /(?-i:a)b/i
  5045. *** Failers
  5046. No match
  5047. Ab
  5048. No match
  5049. AB
  5050. No match
  5051. /((?-i:a))b/i
  5052. /((?-i:a.))b/i
  5053. *** Failers
  5054. No match
  5055. AB
  5056. No match
  5057. a\nB
  5058. No match
  5059. /((?s-i:a.))b/i
  5060. a\nB
  5061. 0: a\x0aB
  5062. /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
  5063. cabbbb
  5064. 0: cabbbb
  5065. /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
  5066. caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  5067. 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  5068. /foo\w*\d{4}baz/
  5069. foobar1234baz
  5070. 0: foobar1234baz
  5071. /x(~~)*(?:(?:F)?)?/
  5072. x~~
  5073. 0: x~~
  5074. 1: x
  5075. /^a(?#xxx){3}c/
  5076. aaac
  5077. 0: aaac
  5078. /^a (?#xxx) (?#yyy) {3}c/x
  5079. aaac
  5080. 0: aaac
  5081. /(?<![cd])b/
  5082. *** Failers
  5083. No match
  5084. B\nB
  5085. No match
  5086. dbcb
  5087. No match
  5088. /(?<![cd])[ab]/
  5089. dbaacb
  5090. 0: a
  5091. /(?<!(c|d))b/
  5092. /(?<!(c|d))[ab]/
  5093. dbaacb
  5094. 0: a
  5095. /(?<!cd)[ab]/
  5096. cdaccb
  5097. 0: b
  5098. /^(?:a?b?)*$/
  5099. *** Failers
  5100. No match
  5101. dbcb
  5102. No match
  5103. a--
  5104. No match
  5105. /((?s)^a(.))((?m)^b$)/
  5106. a\nb\nc\n
  5107. 0: a\x0ab
  5108. /((?m)^b$)/
  5109. a\nb\nc\n
  5110. 0: b
  5111. /(?m)^b/
  5112. a\nb\n
  5113. 0: b
  5114. /(?m)^(b)/
  5115. a\nb\n
  5116. 0: b
  5117. /((?m)^b)/
  5118. a\nb\n
  5119. 0: b
  5120. /\n((?m)^b)/
  5121. a\nb\n
  5122. 0: \x0ab
  5123. /((?s).)c(?!.)/
  5124. a\nb\nc\n
  5125. 0: \x0ac
  5126. a\nb\nc\n
  5127. 0: \x0ac
  5128. /((?s)b.)c(?!.)/
  5129. a\nb\nc\n
  5130. 0: b\x0ac
  5131. a\nb\nc\n
  5132. 0: b\x0ac
  5133. /^b/
  5134. /()^b/
  5135. *** Failers
  5136. No match
  5137. a\nb\nc\n
  5138. No match
  5139. a\nb\nc\n
  5140. No match
  5141. /((?m)^b)/
  5142. a\nb\nc\n
  5143. 0: b
  5144. /(?(?!a)a|b)/
  5145. /(?(?!a)b|a)/
  5146. a
  5147. 0: a
  5148. /(?(?=a)b|a)/
  5149. *** Failers
  5150. No match
  5151. a
  5152. No match
  5153. a
  5154. No match
  5155. /(?(?=a)a|b)/
  5156. a
  5157. 0: a
  5158. /(\w+:)+/
  5159. one:
  5160. 0: one:
  5161. /$(?<=^(a))/
  5162. a
  5163. 0:
  5164. /([\w:]+::)?(\w+)$/
  5165. abcd
  5166. 0: abcd
  5167. xy:z:::abcd
  5168. 0: xy:z:::abcd
  5169. /^[^bcd]*(c+)/
  5170. aexycd
  5171. 0: aexyc
  5172. /(a*)b+/
  5173. caab
  5174. 0: aab
  5175. /([\w:]+::)?(\w+)$/
  5176. abcd
  5177. 0: abcd
  5178. xy:z:::abcd
  5179. 0: xy:z:::abcd
  5180. *** Failers
  5181. 0: Failers
  5182. abcd:
  5183. No match
  5184. abcd:
  5185. No match
  5186. /^[^bcd]*(c+)/
  5187. aexycd
  5188. 0: aexyc
  5189. /(>a+)ab/
  5190. /(?>a+)b/
  5191. aaab
  5192. 0: aaab
  5193. /([[:]+)/
  5194. a:[b]:
  5195. 0: :[
  5196. /([[=]+)/
  5197. a=[b]=
  5198. 0: =[
  5199. /([[.]+)/
  5200. a.[b].
  5201. 0: .[
  5202. /((?>a+)b)/
  5203. aaab
  5204. 0: aaab
  5205. /(?>(a+))b/
  5206. aaab
  5207. 0: aaab
  5208. /((?>[^()]+)|\([^()]*\))+/
  5209. ((abc(ade)ufh()()x
  5210. 0: abc(ade)ufh()()x
  5211. 1: abc(ade)ufh()()
  5212. 2: abc(ade)ufh()
  5213. 3: abc(ade)ufh
  5214. 4: abc(ade)
  5215. 5: abc
  5216. /a\Z/
  5217. *** Failers
  5218. No match
  5219. aaab
  5220. No match
  5221. a\nb\n
  5222. No match
  5223. /b\Z/
  5224. a\nb\n
  5225. 0: b
  5226. /b\z/
  5227. /b\Z/
  5228. a\nb
  5229. 0: b
  5230. /b\z/
  5231. a\nb
  5232. 0: b
  5233. *** Failers
  5234. No match
  5235. /(?>.*)(?<=(abcd|wxyz))/
  5236. alphabetabcd
  5237. 0: alphabetabcd
  5238. endingwxyz
  5239. 0: endingwxyz
  5240. *** Failers
  5241. No match
  5242. a rather long string that doesn't end with one of them
  5243. No match
  5244. /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
  5245. word cat dog elephant mussel cow horse canary baboon snake shark otherword
  5246. 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
  5247. word cat dog elephant mussel cow horse canary baboon snake shark
  5248. No match
  5249. /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
  5250. word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope
  5251. No match
  5252. /(?<=\d{3}(?!999))foo/
  5253. 999foo
  5254. 0: foo
  5255. 123999foo
  5256. 0: foo
  5257. *** Failers
  5258. No match
  5259. 123abcfoo
  5260. No match
  5261. /(?<=(?!...999)\d{3})foo/
  5262. 999foo
  5263. 0: foo
  5264. 123999foo
  5265. 0: foo
  5266. *** Failers
  5267. No match
  5268. 123abcfoo
  5269. No match
  5270. /(?<=\d{3}(?!999)...)foo/
  5271. 123abcfoo
  5272. 0: foo
  5273. 123456foo
  5274. 0: foo
  5275. *** Failers
  5276. No match
  5277. 123999foo
  5278. No match
  5279. /(?<=\d{3}...)(?<!999)foo/
  5280. 123abcfoo
  5281. 0: foo
  5282. 123456foo
  5283. 0: foo
  5284. *** Failers
  5285. No match
  5286. 123999foo
  5287. No match
  5288. /((Z)+|A)*/
  5289. ZABCDEFG
  5290. 0: ZA
  5291. 1: Z
  5292. 2:
  5293. /(Z()|A)*/
  5294. ZABCDEFG
  5295. 0: ZA
  5296. 1: Z
  5297. 2:
  5298. /(Z(())|A)*/
  5299. ZABCDEFG
  5300. 0: ZA
  5301. 1: Z
  5302. 2:
  5303. /((?>Z)+|A)*/
  5304. ZABCDEFG
  5305. 0: ZA
  5306. 1: Z
  5307. 2:
  5308. /((?>)+|A)*/
  5309. ZABCDEFG
  5310. 0:
  5311. /a*/g
  5312. abbab
  5313. 0: a
  5314. 0:
  5315. 0:
  5316. 0: a
  5317. 0:
  5318. 0:
  5319. /^[\d-a]/
  5320. abcde
  5321. 0: a
  5322. -things
  5323. 0: -
  5324. 0digit
  5325. 0: 0
  5326. *** Failers
  5327. No match
  5328. bcdef
  5329. No match
  5330. /[[:space:]]+/
  5331. > \x09\x0a\x0c\x0d\x0b<
  5332. 0: \x09\x0a\x0c\x0d\x0b
  5333. /[[:blank:]]+/
  5334. > \x09\x0a\x0c\x0d\x0b<
  5335. 0: \x09
  5336. /[\s]+/
  5337. > \x09\x0a\x0c\x0d\x0b<
  5338. 0: \x09\x0a\x0c\x0d\x0b
  5339. /\s+/
  5340. > \x09\x0a\x0c\x0d\x0b<
  5341. 0: \x09\x0a\x0c\x0d\x0b
  5342. /a b/x
  5343. ab
  5344. 0: ab
  5345. /(?!\A)x/m
  5346. a\nxb\n
  5347. 0: x
  5348. /(?!^)x/m
  5349. a\nxb\n
  5350. No match
  5351. /abc\Qabc\Eabc/
  5352. abcabcabc
  5353. 0: abcabcabc
  5354. /abc\Q(*+|\Eabc/
  5355. abc(*+|abc
  5356. 0: abc(*+|abc
  5357. / abc\Q abc\Eabc/x
  5358. abc abcabc
  5359. 0: abc abcabc
  5360. *** Failers
  5361. No match
  5362. abcabcabc
  5363. No match
  5364. /abc#comment
  5365. \Q#not comment
  5366. literal\E/x
  5367. abc#not comment\n literal
  5368. 0: abc#not comment\x0a literal
  5369. /abc#comment
  5370. \Q#not comment
  5371. literal/x
  5372. abc#not comment\n literal
  5373. 0: abc#not comment\x0a literal
  5374. /abc#comment
  5375. \Q#not comment
  5376. literal\E #more comment
  5377. /x
  5378. abc#not comment\n literal
  5379. 0: abc#not comment\x0a literal
  5380. /abc#comment
  5381. \Q#not comment
  5382. literal\E #more comment/x
  5383. abc#not comment\n literal
  5384. 0: abc#not comment\x0a literal
  5385. /\Qabc\$xyz\E/
  5386. abc\\\$xyz
  5387. 0: abc\$xyz
  5388. /\Qabc\E\$\Qxyz\E/
  5389. abc\$xyz
  5390. 0: abc$xyz
  5391. /\Gabc/
  5392. abc
  5393. 0: abc
  5394. *** Failers
  5395. No match
  5396. xyzabc
  5397. No match
  5398. /\Gabc./g
  5399. abc1abc2xyzabc3
  5400. 0: abc1
  5401. 0: abc2
  5402. /abc./g
  5403. abc1abc2xyzabc3
  5404. 0: abc1
  5405. 0: abc2
  5406. 0: abc3
  5407. /a(?x: b c )d/
  5408. XabcdY
  5409. 0: abcd
  5410. *** Failers
  5411. No match
  5412. Xa b c d Y
  5413. No match
  5414. /((?x)x y z | a b c)/
  5415. XabcY
  5416. 0: abc
  5417. AxyzB
  5418. 0: xyz
  5419. /(?i)AB(?-i)C/
  5420. XabCY
  5421. 0: abC
  5422. *** Failers
  5423. No match
  5424. XabcY
  5425. No match
  5426. /((?i)AB(?-i)C|D)E/
  5427. abCE
  5428. 0: abCE
  5429. DE
  5430. 0: DE
  5431. *** Failers
  5432. No match
  5433. abcE
  5434. No match
  5435. abCe
  5436. No match
  5437. dE
  5438. No match
  5439. De
  5440. No match
  5441. /[z\Qa-d]\E]/
  5442. z
  5443. 0: z
  5444. a
  5445. 0: a
  5446. -
  5447. 0: -
  5448. d
  5449. 0: d
  5450. ]
  5451. 0: ]
  5452. *** Failers
  5453. 0: a
  5454. b
  5455. No match
  5456. /[\z\C]/
  5457. z
  5458. 0: z
  5459. C
  5460. 0: C
  5461. /\M/
  5462. M
  5463. 0: M
  5464. /(a+)*b/
  5465. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  5466. No match
  5467. /(?i)reg(?:ul(?:[aä]|ae)r|ex)/
  5468. REGular
  5469. 0: REGular
  5470. regulaer
  5471. 0: regulaer
  5472. Regex
  5473. 0: Regex
  5474. regulär
  5475. 0: regul\xe4r
  5476. /Åæåä[à-ÿÀ-ß]+/
  5477. Åæåäà
  5478. 0: \xc5\xe6\xe5\xe4\xe0
  5479. Åæåäÿ
  5480. 0: \xc5\xe6\xe5\xe4\xff
  5481. ÅæåäÀ
  5482. 0: \xc5\xe6\xe5\xe4\xc0
  5483. Åæåäß
  5484. 0: \xc5\xe6\xe5\xe4\xdf
  5485. /(?<=Z)X./
  5486. \x84XAZXB
  5487. 0: XB
  5488. /^(?(2)a|(1)(2))+$/
  5489. 123a
  5490. Error -17 (backreference condition or recursion test not supported for DFA matching)
  5491. /(?<=a|bbbb)c/
  5492. ac
  5493. 0: c
  5494. bbbbc
  5495. 0: c
  5496. /abc/SS>testsavedregex
  5497. Compiled pattern written to testsavedregex
  5498. <testsavedregex
  5499. Compiled pattern loaded from testsavedregex
  5500. No study data
  5501. abc
  5502. 0: abc
  5503. *** Failers
  5504. No match
  5505. bca
  5506. No match
  5507. /abc/FSS>testsavedregex
  5508. Compiled pattern written to testsavedregex
  5509. <testsavedregex
  5510. Compiled pattern (byte-inverted) loaded from testsavedregex
  5511. No study data
  5512. abc
  5513. 0: abc
  5514. *** Failers
  5515. No match
  5516. bca
  5517. No match
  5518. /(a|b)/S>testsavedregex
  5519. Compiled pattern written to testsavedregex
  5520. Study data written to testsavedregex
  5521. <testsavedregex
  5522. Compiled pattern loaded from testsavedregex
  5523. Study data loaded from testsavedregex
  5524. abc
  5525. 0: a
  5526. *** Failers
  5527. 0: a
  5528. def
  5529. No match
  5530. /(a|b)/SF>testsavedregex
  5531. Compiled pattern written to testsavedregex
  5532. Study data written to testsavedregex
  5533. <testsavedregex
  5534. Compiled pattern (byte-inverted) loaded from testsavedregex
  5535. Study data loaded from testsavedregex
  5536. abc
  5537. 0: a
  5538. *** Failers
  5539. 0: a
  5540. def
  5541. No match
  5542. /line\nbreak/
  5543. this is a line\nbreak
  5544. 0: line\x0abreak
  5545. line one\nthis is a line\nbreak in the second line
  5546. 0: line\x0abreak
  5547. /line\nbreak/f
  5548. this is a line\nbreak
  5549. 0: line\x0abreak
  5550. ** Failers
  5551. No match
  5552. line one\nthis is a line\nbreak in the second line
  5553. No match
  5554. /line\nbreak/mf
  5555. this is a line\nbreak
  5556. 0: line\x0abreak
  5557. ** Failers
  5558. No match
  5559. line one\nthis is a line\nbreak in the second line
  5560. No match
  5561. /1234/
  5562. 123\P
  5563. Partial match: 123
  5564. a4\P\R
  5565. No match
  5566. /1234/
  5567. 123\P
  5568. Partial match: 123
  5569. 4\P\R
  5570. 0: 4
  5571. /^/mg
  5572. a\nb\nc\n
  5573. 0:
  5574. 0:
  5575. 0:
  5576. \
  5577. 0:
  5578. /(?<=C\n)^/mg
  5579. A\nC\nC\n
  5580. 0:
  5581. /(?s)A?B/
  5582. AB
  5583. 0: AB
  5584. aB
  5585. 0: B
  5586. /(?s)A*B/
  5587. AB
  5588. 0: AB
  5589. aB
  5590. 0: B
  5591. /(?m)A?B/
  5592. AB
  5593. 0: AB
  5594. aB
  5595. 0: B
  5596. /(?m)A*B/
  5597. AB
  5598. 0: AB
  5599. aB
  5600. 0: B
  5601. /Content-Type\x3A[^\r\n]{6,}/
  5602. Content-Type:xxxxxyyy
  5603. 0: Content-Type:xxxxxyyy
  5604. /Content-Type\x3A[^\r\n]{6,}z/
  5605. Content-Type:xxxxxyyyz
  5606. 0: Content-Type:xxxxxyyyz
  5607. /Content-Type\x3A[^a]{6,}/
  5608. Content-Type:xxxyyy
  5609. 0: Content-Type:xxxyyy
  5610. /Content-Type\x3A[^a]{6,}z/
  5611. Content-Type:xxxyyyz
  5612. 0: Content-Type:xxxyyyz
  5613. /^abc/m
  5614. xyz\nabc
  5615. 0: abc
  5616. xyz\nabc\<lf>
  5617. 0: abc
  5618. xyz\r\nabc\<lf>
  5619. 0: abc
  5620. xyz\rabc\<cr>
  5621. 0: abc
  5622. xyz\r\nabc\<crlf>
  5623. 0: abc
  5624. ** Failers
  5625. No match
  5626. xyz\nabc\<cr>
  5627. No match
  5628. xyz\r\nabc\<cr>
  5629. No match
  5630. xyz\nabc\<crlf>
  5631. No match
  5632. xyz\rabc\<crlf>
  5633. No match
  5634. xyz\rabc\<lf>
  5635. No match
  5636. /abc$/m<lf>
  5637. xyzabc
  5638. 0: abc
  5639. xyzabc\n
  5640. 0: abc
  5641. xyzabc\npqr
  5642. 0: abc
  5643. xyzabc\r\<cr>
  5644. 0: abc
  5645. xyzabc\rpqr\<cr>
  5646. 0: abc
  5647. xyzabc\r\n\<crlf>
  5648. 0: abc
  5649. xyzabc\r\npqr\<crlf>
  5650. 0: abc
  5651. ** Failers
  5652. No match
  5653. xyzabc\r
  5654. No match
  5655. xyzabc\rpqr
  5656. No match
  5657. xyzabc\r\n
  5658. No match
  5659. xyzabc\r\npqr
  5660. No match
  5661. /^abc/m<cr>
  5662. xyz\rabcdef
  5663. 0: abc
  5664. xyz\nabcdef\<lf>
  5665. 0: abc
  5666. ** Failers
  5667. No match
  5668. xyz\nabcdef
  5669. No match
  5670. /^abc/m<lf>
  5671. xyz\nabcdef
  5672. 0: abc
  5673. xyz\rabcdef\<cr>
  5674. 0: abc
  5675. ** Failers
  5676. No match
  5677. xyz\rabcdef
  5678. No match
  5679. /^abc/m<crlf>
  5680. xyz\r\nabcdef
  5681. 0: abc
  5682. xyz\rabcdef\<cr>
  5683. 0: abc
  5684. ** Failers
  5685. No match
  5686. xyz\rabcdef
  5687. No match
  5688. /.*/<lf>
  5689. abc\ndef
  5690. 0: abc
  5691. abc\rdef
  5692. 0: abc\x0ddef
  5693. abc\r\ndef
  5694. 0: abc\x0d
  5695. \<cr>abc\ndef
  5696. 0: abc\x0adef
  5697. \<cr>abc\rdef
  5698. 0: abc
  5699. \<cr>abc\r\ndef
  5700. 0: abc
  5701. \<crlf>abc\ndef
  5702. 0: abc\x0adef
  5703. \<crlf>abc\rdef
  5704. 0: abc\x0ddef
  5705. \<crlf>abc\r\ndef
  5706. 0: abc
  5707. /\w+(.)(.)?def/s
  5708. abc\ndef
  5709. 0: abc\x0adef
  5710. abc\rdef
  5711. 0: abc\x0ddef
  5712. abc\r\ndef
  5713. 0: abc\x0d\x0adef
  5714. /^\w+=.*(\\\n.*)*/
  5715. abc=xyz\\\npqr
  5716. 0: abc=xyz\\x0apqr
  5717. 1: abc=xyz\\x0apq
  5718. 2: abc=xyz\\x0ap
  5719. 3: abc=xyz\\x0a
  5720. 4: abc=xyz\
  5721. 5: abc=xyz
  5722. 6: abc=xy
  5723. 7: abc=x
  5724. 8: abc=
  5725. /^(a()*)*/
  5726. aaaa
  5727. 0: aaaa
  5728. 1: aaa
  5729. 2: aa
  5730. 3: a
  5731. 4:
  5732. /^(?:a(?:(?:))*)*/
  5733. aaaa
  5734. 0: aaaa
  5735. 1: aaa
  5736. 2: aa
  5737. 3: a
  5738. 4:
  5739. /^(a()+)+/
  5740. aaaa
  5741. 0: aaaa
  5742. 1: aaa
  5743. 2: aa
  5744. 3: a
  5745. /^(?:a(?:(?:))+)+/
  5746. aaaa
  5747. 0: aaaa
  5748. 1: aaa
  5749. 2: aa
  5750. 3: a
  5751. /(a|)*\d/
  5752. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  5753. No match
  5754. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
  5755. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
  5756. /(?>a|)*\d/
  5757. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  5758. No match
  5759. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
  5760. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
  5761. /(?:a|)*\d/
  5762. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  5763. No match
  5764. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
  5765. 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
  5766. /^a.b/<lf>
  5767. a\rb
  5768. 0: a\x0db
  5769. a\nb\<cr>
  5770. 0: a\x0ab
  5771. ** Failers
  5772. No match
  5773. a\nb
  5774. No match
  5775. a\nb\<any>
  5776. No match
  5777. a\rb\<cr>
  5778. No match
  5779. a\rb\<any>
  5780. No match
  5781. /^abc./mgx<any>
  5782. abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
  5783. 0: abc1
  5784. 0: abc2
  5785. 0: abc3
  5786. 0: abc4
  5787. 0: abc5
  5788. 0: abc6
  5789. 0: abc7
  5790. /abc.$/mgx<any>
  5791. abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
  5792. 0: abc1
  5793. 0: abc2
  5794. 0: abc3
  5795. 0: abc4
  5796. 0: abc5
  5797. 0: abc6
  5798. 0: abc9
  5799. /^a\Rb/<bsr_unicode>
  5800. a\nb
  5801. 0: a\x0ab
  5802. a\rb
  5803. 0: a\x0db
  5804. a\r\nb
  5805. 0: a\x0d\x0ab
  5806. a\x0bb
  5807. 0: a\x0bb
  5808. a\x0cb
  5809. 0: a\x0cb
  5810. a\x85b
  5811. 0: a\x85b
  5812. ** Failers
  5813. No match
  5814. a\n\rb
  5815. No match
  5816. /^a\R*b/<bsr_unicode>
  5817. ab
  5818. 0: ab
  5819. a\nb
  5820. 0: a\x0ab
  5821. a\rb
  5822. 0: a\x0db
  5823. a\r\nb
  5824. 0: a\x0d\x0ab
  5825. a\x0bb
  5826. 0: a\x0bb
  5827. a\x0cb
  5828. 0: a\x0cb
  5829. a\x85b
  5830. 0: a\x85b
  5831. a\n\rb
  5832. 0: a\x0a\x0db
  5833. a\n\r\x85\x0cb
  5834. 0: a\x0a\x0d\x85\x0cb
  5835. /^a\R+b/<bsr_unicode>
  5836. a\nb
  5837. 0: a\x0ab
  5838. a\rb
  5839. 0: a\x0db
  5840. a\r\nb
  5841. 0: a\x0d\x0ab
  5842. a\x0bb
  5843. 0: a\x0bb
  5844. a\x0cb
  5845. 0: a\x0cb
  5846. a\x85b
  5847. 0: a\x85b
  5848. a\n\rb
  5849. 0: a\x0a\x0db
  5850. a\n\r\x85\x0cb
  5851. 0: a\x0a\x0d\x85\x0cb
  5852. ** Failers
  5853. No match
  5854. ab
  5855. No match
  5856. /^a\R{1,3}b/<bsr_unicode>
  5857. a\nb
  5858. 0: a\x0ab
  5859. a\n\rb
  5860. 0: a\x0a\x0db
  5861. a\n\r\x85b
  5862. 0: a\x0a\x0d\x85b
  5863. a\r\n\r\nb
  5864. 0: a\x0d\x0a\x0d\x0ab
  5865. a\r\n\r\n\r\nb
  5866. 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
  5867. a\n\r\n\rb
  5868. 0: a\x0a\x0d\x0a\x0db
  5869. a\n\n\r\nb
  5870. 0: a\x0a\x0a\x0d\x0ab
  5871. ** Failers
  5872. No match
  5873. a\n\n\n\rb
  5874. No match
  5875. a\r
  5876. No match
  5877. /^a[\R]b/<bsr_unicode>
  5878. aRb
  5879. 0: aRb
  5880. ** Failers
  5881. No match
  5882. a\nb
  5883. No match
  5884. /.+foo/
  5885. afoo
  5886. 0: afoo
  5887. ** Failers
  5888. No match
  5889. \r\nfoo
  5890. No match
  5891. \nfoo
  5892. No match
  5893. /.+foo/<crlf>
  5894. afoo
  5895. 0: afoo
  5896. \nfoo
  5897. 0: \x0afoo
  5898. ** Failers
  5899. No match
  5900. \r\nfoo
  5901. No match
  5902. /.+foo/<any>
  5903. afoo
  5904. 0: afoo
  5905. ** Failers
  5906. No match
  5907. \nfoo
  5908. No match
  5909. \r\nfoo
  5910. No match
  5911. /.+foo/s
  5912. afoo
  5913. 0: afoo
  5914. \r\nfoo
  5915. 0: \x0d\x0afoo
  5916. \nfoo
  5917. 0: \x0afoo
  5918. /^$/mg<any>
  5919. abc\r\rxyz
  5920. 0:
  5921. abc\n\rxyz
  5922. 0:
  5923. ** Failers
  5924. No match
  5925. abc\r\nxyz
  5926. No match
  5927. /^X/m
  5928. XABC
  5929. 0: X
  5930. ** Failers
  5931. No match
  5932. XABC\B
  5933. No match
  5934. /(?m)^$/<any>g+
  5935. abc\r\n\r\n
  5936. 0:
  5937. 0+ \x0d\x0a
  5938. /(?m)^$|^\r\n/<any>g+
  5939. abc\r\n\r\n
  5940. 0: \x0d\x0a
  5941. 0+
  5942. 1:
  5943. /(?m)$/<any>g+
  5944. abc\r\n\r\n
  5945. 0:
  5946. 0+ \x0d\x0a\x0d\x0a
  5947. 0:
  5948. 0+ \x0d\x0a
  5949. 0:
  5950. 0+
  5951. /(?|(abc)|(xyz))/
  5952. >abc<
  5953. 0: abc
  5954. >xyz<
  5955. 0: xyz
  5956. /(x)(?|(abc)|(xyz))(x)/
  5957. xabcx
  5958. 0: xabcx
  5959. xxyzx
  5960. 0: xxyzx
  5961. /(x)(?|(abc)(pqr)|(xyz))(x)/
  5962. xabcpqrx
  5963. 0: xabcpqrx
  5964. xxyzx
  5965. 0: xxyzx
  5966. /(?|(abc)|(xyz))(?1)/
  5967. abcabc
  5968. 0: abcabc
  5969. xyzabc
  5970. 0: xyzabc
  5971. ** Failers
  5972. No match
  5973. xyzxyz
  5974. No match
  5975. /\H\h\V\v/
  5976. X X\x0a
  5977. 0: X X\x0a
  5978. X\x09X\x0b
  5979. 0: X\x09X\x0b
  5980. ** Failers
  5981. No match
  5982. \xa0 X\x0a
  5983. No match
  5984. /\H*\h+\V?\v{3,4}/
  5985. \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
  5986. 0: \x09 \xa0X\x0a\x0b\x0c\x0d
  5987. \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
  5988. 0: \x09 \xa0\x0a\x0b\x0c\x0d
  5989. \x09\x20\xa0\x0a\x0b\x0c
  5990. 0: \x09 \xa0\x0a\x0b\x0c
  5991. ** Failers
  5992. No match
  5993. \x09\x20\xa0\x0a\x0b
  5994. No match
  5995. /\H{3,4}/
  5996. XY ABCDE
  5997. 0: ABCD
  5998. XY PQR ST
  5999. 0: PQR
  6000. /.\h{3,4}./
  6001. XY AB PQRS
  6002. 0: B P
  6003. 1: B
  6004. /\h*X\h?\H+Y\H?Z/
  6005. >XNNNYZ
  6006. 0: XNNNYZ
  6007. > X NYQZ
  6008. 0: X NYQZ
  6009. ** Failers
  6010. No match
  6011. >XYZ
  6012. No match
  6013. > X NY Z
  6014. No match
  6015. /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
  6016. >XY\x0aZ\x0aA\x0bNN\x0c
  6017. 0: XY\x0aZ\x0aA\x0bNN\x0c
  6018. >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
  6019. 0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
  6020. /.+A/<crlf>
  6021. \r\nA
  6022. No match
  6023. /\nA/<crlf>
  6024. \r\nA
  6025. 0: \x0aA
  6026. /[\r\n]A/<crlf>
  6027. \r\nA
  6028. 0: \x0aA
  6029. /(\r|\n)A/<crlf>
  6030. \r\nA
  6031. 0: \x0aA
  6032. /a\Rb/I<bsr_anycrlf>
  6033. Capturing subpattern count = 0
  6034. Options: bsr_anycrlf
  6035. First char = 'a'
  6036. Need char = 'b'
  6037. a\rb
  6038. 0: a\x0db
  6039. a\nb
  6040. 0: a\x0ab
  6041. a\r\nb
  6042. 0: a\x0d\x0ab
  6043. ** Failers
  6044. No match
  6045. a\x85b
  6046. No match
  6047. a\x0bb
  6048. No match
  6049. /a\Rb/I<bsr_unicode>
  6050. Capturing subpattern count = 0
  6051. Options: bsr_unicode
  6052. First char = 'a'
  6053. Need char = 'b'
  6054. a\rb
  6055. 0: a\x0db
  6056. a\nb
  6057. 0: a\x0ab
  6058. a\r\nb
  6059. 0: a\x0d\x0ab
  6060. a\x85b
  6061. 0: a\x85b
  6062. a\x0bb
  6063. 0: a\x0bb
  6064. ** Failers
  6065. No match
  6066. a\x85b\<bsr_anycrlf>
  6067. No match
  6068. a\x0bb\<bsr_anycrlf>
  6069. No match
  6070. /a\R?b/I<bsr_anycrlf>
  6071. Capturing subpattern count = 0
  6072. Options: bsr_anycrlf
  6073. First char = 'a'
  6074. Need char = 'b'
  6075. a\rb
  6076. 0: a\x0db
  6077. a\nb
  6078. 0: a\x0ab
  6079. a\r\nb
  6080. 0: a\x0d\x0ab
  6081. ** Failers
  6082. No match
  6083. a\x85b
  6084. No match
  6085. a\x0bb
  6086. No match
  6087. /a\R?b/I<bsr_unicode>
  6088. Capturing subpattern count = 0
  6089. Options: bsr_unicode
  6090. First char = 'a'
  6091. Need char = 'b'
  6092. a\rb
  6093. 0: a\x0db
  6094. a\nb
  6095. 0: a\x0ab
  6096. a\r\nb
  6097. 0: a\x0d\x0ab
  6098. a\x85b
  6099. 0: a\x85b
  6100. a\x0bb
  6101. 0: a\x0bb
  6102. ** Failers
  6103. No match
  6104. a\x85b\<bsr_anycrlf>
  6105. No match
  6106. a\x0bb\<bsr_anycrlf>
  6107. No match
  6108. /a\R{2,4}b/I<bsr_anycrlf>
  6109. Capturing subpattern count = 0
  6110. Options: bsr_anycrlf
  6111. First char = 'a'
  6112. Need char = 'b'
  6113. a\r\n\nb
  6114. 0: a\x0d\x0a\x0ab
  6115. a\n\r\rb
  6116. 0: a\x0a\x0d\x0db
  6117. a\r\n\r\n\r\n\r\nb
  6118. 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
  6119. ** Failers
  6120. No match
  6121. a\x85\85b
  6122. No match
  6123. a\x0b\0bb
  6124. No match
  6125. /a\R{2,4}b/I<bsr_unicode>
  6126. Capturing subpattern count = 0
  6127. Options: bsr_unicode
  6128. First char = 'a'
  6129. Need char = 'b'
  6130. a\r\rb
  6131. 0: a\x0d\x0db
  6132. a\n\n\nb
  6133. 0: a\x0a\x0a\x0ab
  6134. a\r\n\n\r\rb
  6135. 0: a\x0d\x0a\x0a\x0d\x0db
  6136. a\x85\85b
  6137. No match
  6138. a\x0b\0bb
  6139. No match
  6140. ** Failers
  6141. No match
  6142. a\r\r\r\r\rb
  6143. No match
  6144. a\x85\85b\<bsr_anycrlf>
  6145. No match
  6146. a\x0b\0bb\<bsr_anycrlf>
  6147. No match
  6148. /a(?!)|\wbc/
  6149. abc
  6150. 0: abc
  6151. /a[]b/<JS>
  6152. ** Failers
  6153. No match
  6154. ab
  6155. No match
  6156. /a[]+b/<JS>
  6157. ** Failers
  6158. No match
  6159. ab
  6160. No match
  6161. /a[]*+b/<JS>
  6162. ** Failers
  6163. No match
  6164. ab
  6165. No match
  6166. /a[^]b/<JS>
  6167. aXb
  6168. 0: aXb
  6169. a\nb
  6170. 0: a\x0ab
  6171. ** Failers
  6172. No match
  6173. ab
  6174. No match
  6175. /a[^]+b/<JS>
  6176. aXb
  6177. 0: aXb
  6178. a\nX\nXb
  6179. 0: a\x0aX\x0aXb
  6180. ** Failers
  6181. No match
  6182. ab
  6183. No match
  6184. /X$/E
  6185. X
  6186. 0: X
  6187. ** Failers
  6188. No match
  6189. X\n
  6190. No match
  6191. /X$/
  6192. X
  6193. 0: X
  6194. X\n
  6195. 0: X
  6196. /xyz/C
  6197. xyz
  6198. --->xyz
  6199. +0 ^ x
  6200. +1 ^^ y
  6201. +2 ^ ^ z
  6202. +3 ^ ^
  6203. 0: xyz
  6204. abcxyz
  6205. --->abcxyz
  6206. +0 ^ x
  6207. +1 ^^ y
  6208. +2 ^ ^ z
  6209. +3 ^ ^
  6210. 0: xyz
  6211. abcxyz\Y
  6212. --->abcxyz
  6213. +0 ^ x
  6214. +0 ^ x
  6215. +0 ^ x
  6216. +0 ^ x
  6217. +1 ^^ y
  6218. +2 ^ ^ z
  6219. +3 ^ ^
  6220. 0: xyz
  6221. ** Failers
  6222. No match
  6223. abc
  6224. No match
  6225. abc\Y
  6226. --->abc
  6227. +0 ^ x
  6228. +0 ^ x
  6229. +0 ^ x
  6230. +0 ^ x
  6231. No match
  6232. abcxypqr
  6233. No match
  6234. abcxypqr\Y
  6235. --->abcxypqr
  6236. +0 ^ x
  6237. +0 ^ x
  6238. +0 ^ x
  6239. +0 ^ x
  6240. +1 ^^ y
  6241. +2 ^ ^ z
  6242. +0 ^ x
  6243. +0 ^ x
  6244. +0 ^ x
  6245. +0 ^ x
  6246. +0 ^ x
  6247. No match
  6248. /(*NO_START_OPT)xyz/C
  6249. abcxyz
  6250. --->abcxyz
  6251. +15 ^ x
  6252. +15 ^ x
  6253. +15 ^ x
  6254. +15 ^ x
  6255. +16 ^^ y
  6256. +17 ^ ^ z
  6257. +18 ^ ^
  6258. 0: xyz
  6259. /(?C)ab/
  6260. ab
  6261. --->ab
  6262. 0 ^ a
  6263. 0: ab
  6264. \C-ab
  6265. 0: ab
  6266. /ab/C
  6267. ab
  6268. --->ab
  6269. +0 ^ a
  6270. +1 ^^ b
  6271. +2 ^ ^
  6272. 0: ab
  6273. \C-ab
  6274. 0: ab
  6275. /^"((?(?=[a])[^"])|b)*"$/C
  6276. "ab"
  6277. --->"ab"
  6278. +0 ^ ^
  6279. +1 ^ "
  6280. +2 ^^ ((?(?=[a])[^"])|b)*
  6281. +21 ^^ "
  6282. +3 ^^ (?(?=[a])[^"])
  6283. +18 ^^ b
  6284. +5 ^^ (?=[a])
  6285. +8 ^ [a]
  6286. +11 ^^ )
  6287. +12 ^^ [^"]
  6288. +16 ^ ^ )
  6289. +17 ^ ^ |
  6290. +21 ^ ^ "
  6291. +3 ^ ^ (?(?=[a])[^"])
  6292. +18 ^ ^ b
  6293. +5 ^ ^ (?=[a])
  6294. +8 ^ [a]
  6295. +19 ^ ^ )
  6296. +21 ^ ^ "
  6297. +3 ^ ^ (?(?=[a])[^"])
  6298. +18 ^ ^ b
  6299. +5 ^ ^ (?=[a])
  6300. +8 ^ [a]
  6301. +17 ^ ^ |
  6302. +22 ^ ^ $
  6303. +23 ^ ^
  6304. 0: "ab"
  6305. \C-"ab"
  6306. 0: "ab"
  6307. /\d+X|9+Y/
  6308. ++++123999\P
  6309. Partial match: 123999
  6310. ++++123999Y\P
  6311. 0: 999Y
  6312. /Z(*F)/
  6313. Z\P
  6314. No match
  6315. ZA\P
  6316. No match
  6317. /Z(?!)/
  6318. Z\P
  6319. No match
  6320. ZA\P
  6321. No match
  6322. /dog(sbody)?/
  6323. dogs\P
  6324. 0: dog
  6325. dogs\P\P
  6326. Partial match: dogs
  6327. /dog(sbody)??/
  6328. dogs\P
  6329. 0: dog
  6330. dogs\P\P
  6331. Partial match: dogs
  6332. /dog|dogsbody/
  6333. dogs\P
  6334. 0: dog
  6335. dogs\P\P
  6336. Partial match: dogs
  6337. /dogsbody|dog/
  6338. dogs\P
  6339. 0: dog
  6340. dogs\P\P
  6341. Partial match: dogs
  6342. /Z(*F)Q|ZXY/
  6343. Z\P
  6344. Partial match: Z
  6345. ZA\P
  6346. No match
  6347. X\P
  6348. No match
  6349. /\bthe cat\b/
  6350. the cat\P
  6351. 0: the cat
  6352. the cat\P\P
  6353. Partial match: the cat
  6354. /dog(sbody)?/
  6355. dogs\D\P
  6356. 0: dog
  6357. body\D\R
  6358. 0: body
  6359. /dog(sbody)?/
  6360. dogs\D\P\P
  6361. Partial match: dogs
  6362. body\D\R
  6363. 0: body
  6364. /abc/
  6365. abc\P
  6366. 0: abc
  6367. abc\P\P
  6368. 0: abc
  6369. /abc\K123/
  6370. xyzabc123pqr
  6371. Error -16 (item unsupported for DFA matching)
  6372. /(?<=abc)123/
  6373. xyzabc123pqr
  6374. 0: 123
  6375. xyzabc12\P
  6376. Partial match at offset 6: abc12
  6377. xyzabc12\P\P
  6378. Partial match at offset 6: abc12
  6379. /\babc\b/
  6380. +++abc+++
  6381. 0: abc
  6382. +++ab\P
  6383. Partial match at offset 3: +ab
  6384. +++ab\P\P
  6385. Partial match at offset 3: +ab
  6386. /(?=C)/g+
  6387. ABCDECBA
  6388. 0:
  6389. 0+ CDECBA
  6390. 0:
  6391. 0+ CBA
  6392. /(abc|def|xyz)/I
  6393. Capturing subpattern count = 1
  6394. No options
  6395. No first char
  6396. No need char
  6397. terhjk;abcdaadsfe
  6398. 0: abc
  6399. the quick xyz brown fox
  6400. 0: xyz
  6401. \Yterhjk;abcdaadsfe
  6402. 0: abc
  6403. \Ythe quick xyz brown fox
  6404. 0: xyz
  6405. ** Failers
  6406. No match
  6407. thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
  6408. No match
  6409. \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
  6410. No match
  6411. /(abc|def|xyz)/SI
  6412. Capturing subpattern count = 1
  6413. No options
  6414. No first char
  6415. No need char
  6416. Subject length lower bound = 3
  6417. Starting chars: a d x
  6418. terhjk;abcdaadsfe
  6419. 0: abc
  6420. the quick xyz brown fox
  6421. 0: xyz
  6422. \Yterhjk;abcdaadsfe
  6423. 0: abc
  6424. \Ythe quick xyz brown fox
  6425. 0: xyz
  6426. ** Failers
  6427. No match
  6428. thejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
  6429. No match
  6430. \Ythejk;adlfj aenjl;fda asdfasd ehj;kjxyasiupd
  6431. No match
  6432. /abcd*/+
  6433. xxxxabcd\P
  6434. 0: abcd
  6435. 0+
  6436. xxxxabcd\P\P
  6437. Partial match: abcd
  6438. dddxxx\R
  6439. 0: ddd
  6440. 0+ xxx
  6441. xxxxabcd\P\P
  6442. Partial match: abcd
  6443. xxx\R
  6444. 0:
  6445. 0+ xxx
  6446. /abcd*/i
  6447. xxxxabcd\P
  6448. 0: abcd
  6449. xxxxabcd\P\P
  6450. Partial match: abcd
  6451. XXXXABCD\P
  6452. 0: ABCD
  6453. XXXXABCD\P\P
  6454. Partial match: ABCD
  6455. /abc\d*/
  6456. xxxxabc1\P
  6457. 0: abc1
  6458. xxxxabc1\P\P
  6459. Partial match: abc1
  6460. /abc[de]*/
  6461. xxxxabcde\P
  6462. 0: abcde
  6463. xxxxabcde\P\P
  6464. Partial match: abcde
  6465. /(?:(?1)|B)(A(*F)|C)/
  6466. ABCD
  6467. 0: BC
  6468. CCD
  6469. 0: CC
  6470. ** Failers
  6471. No match
  6472. CAD
  6473. No match
  6474. /^(?:(?1)|B)(A(*F)|C)/
  6475. CCD
  6476. 0: CC
  6477. BCD
  6478. 0: BC
  6479. ** Failers
  6480. No match
  6481. ABCD
  6482. No match
  6483. CAD
  6484. No match
  6485. BAD
  6486. No match
  6487. /^(?!a(*SKIP)b)/
  6488. ac
  6489. Error -16 (item unsupported for DFA matching)
  6490. /^(?=a(*SKIP)b|ac)/
  6491. ** Failers
  6492. No match
  6493. ac
  6494. Error -16 (item unsupported for DFA matching)
  6495. /^(?=a(*THEN)b|ac)/
  6496. ac
  6497. Error -16 (item unsupported for DFA matching)
  6498. /^(?=a(*PRUNE)b)/
  6499. ab
  6500. Error -16 (item unsupported for DFA matching)
  6501. ** Failers
  6502. No match
  6503. ac
  6504. Error -16 (item unsupported for DFA matching)
  6505. /^(?(?!a(*SKIP)b))/
  6506. ac
  6507. Error -16 (item unsupported for DFA matching)
  6508. /(?<=abc)def/
  6509. abc\P\P
  6510. Partial match at offset 3: abc
  6511. /abc$/
  6512. abc
  6513. 0: abc
  6514. abc\P
  6515. 0: abc
  6516. abc\P\P
  6517. Partial match: abc
  6518. /abc$/m
  6519. abc
  6520. 0: abc
  6521. abc\n
  6522. 0: abc
  6523. abc\P\P
  6524. Partial match: abc
  6525. abc\n\P\P
  6526. 0: abc
  6527. abc\P
  6528. 0: abc
  6529. abc\n\P
  6530. 0: abc
  6531. /abc\z/
  6532. abc
  6533. 0: abc
  6534. abc\P
  6535. 0: abc
  6536. abc\P\P
  6537. Partial match: abc
  6538. /abc\Z/
  6539. abc
  6540. 0: abc
  6541. abc\P
  6542. 0: abc
  6543. abc\P\P
  6544. Partial match: abc
  6545. /abc\b/
  6546. abc
  6547. 0: abc
  6548. abc\P
  6549. 0: abc
  6550. abc\P\P
  6551. Partial match: abc
  6552. /abc\B/
  6553. abc
  6554. No match
  6555. abc\P
  6556. Partial match: abc
  6557. abc\P\P
  6558. Partial match: abc
  6559. /.+/
  6560. abc\>0
  6561. 0: abc
  6562. abc\>1
  6563. 0: bc
  6564. abc\>2
  6565. 0: c
  6566. abc\>3
  6567. No match
  6568. abc\>4
  6569. Error -24 (bad offset value)
  6570. abc\>-4
  6571. Error -24 (bad offset value)
  6572. /^(?:a)++\w/
  6573. aaaab
  6574. 0: aaaab
  6575. ** Failers
  6576. No match
  6577. aaaa
  6578. No match
  6579. bbb
  6580. No match
  6581. /^(?:aa|(?:a)++\w)/
  6582. aaaab
  6583. 0: aaaab
  6584. 1: aa
  6585. aaaa
  6586. 0: aa
  6587. ** Failers
  6588. No match
  6589. bbb
  6590. No match
  6591. /^(?:a)*+\w/
  6592. aaaab
  6593. 0: aaaab
  6594. bbb
  6595. 0: b
  6596. ** Failers
  6597. No match
  6598. aaaa
  6599. No match
  6600. /^(a)++\w/
  6601. aaaab
  6602. 0: aaaab
  6603. ** Failers
  6604. No match
  6605. aaaa
  6606. No match
  6607. bbb
  6608. No match
  6609. /^(a|)++\w/
  6610. aaaab
  6611. 0: aaaab
  6612. ** Failers
  6613. No match
  6614. aaaa
  6615. No match
  6616. bbb
  6617. No match
  6618. /(?=abc){3}abc/+
  6619. abcabcabc
  6620. 0: abc
  6621. 0+ abcabc
  6622. ** Failers
  6623. No match
  6624. xyz
  6625. No match
  6626. /(?=abc)+abc/+
  6627. abcabcabc
  6628. 0: abc
  6629. 0+ abcabc
  6630. ** Failers
  6631. No match
  6632. xyz
  6633. No match
  6634. /(?=abc)++abc/+
  6635. abcabcabc
  6636. 0: abc
  6637. 0+ abcabc
  6638. ** Failers
  6639. No match
  6640. xyz
  6641. No match
  6642. /(?=abc){0}xyz/
  6643. xyz
  6644. 0: xyz
  6645. /(?=abc){1}xyz/
  6646. ** Failers
  6647. No match
  6648. xyz
  6649. No match
  6650. /(?=(a))?./
  6651. ab
  6652. 0: a
  6653. bc
  6654. 0: b
  6655. /(?=(a))??./
  6656. ab
  6657. 0: a
  6658. bc
  6659. 0: b
  6660. /^(?=(a)){0}b(?1)/
  6661. backgammon
  6662. 0: ba
  6663. /^(?=(?1))?[az]([abc])d/
  6664. abd
  6665. 0: abd
  6666. zcdxx
  6667. 0: zcd
  6668. /^(?!a){0}\w+/
  6669. aaaaa
  6670. 0: aaaaa
  6671. /(?<=(abc))?xyz/
  6672. abcxyz
  6673. 0: xyz
  6674. pqrxyz
  6675. 0: xyz
  6676. /((?2))((?1))/
  6677. abc
  6678. Error -26 (nested recursion at the same subject position)
  6679. /(?(R)a+|(?R)b)/
  6680. aaaabcde
  6681. 0: aaaab
  6682. /(?(R)a+|((?R))b)/
  6683. aaaabcde
  6684. 0: aaaab
  6685. /((?(R)a+|(?1)b))/
  6686. aaaabcde
  6687. 0: aaaab
  6688. /((?(R2)a+|(?1)b))/
  6689. aaaabcde
  6690. Error -17 (backreference condition or recursion test not supported for DFA matching)
  6691. /(?(R)a*(?1)|((?R))b)/
  6692. aaaabcde
  6693. Error -26 (nested recursion at the same subject position)
  6694. /(a+)/O
  6695. \O6aaaa
  6696. Matched, but offsets vector is too small to show all matches
  6697. 0: aaaa
  6698. 1: aaa
  6699. 2: aa
  6700. \O8aaaa
  6701. 0: aaaa
  6702. 1: aaa
  6703. 2: aa
  6704. 3: a
  6705. /ab\Cde/
  6706. abXde
  6707. 0: abXde
  6708. /(?<=ab\Cde)X/
  6709. abZdeX
  6710. 0: X
  6711. /^\R/
  6712. \r\P
  6713. 0: \x0d
  6714. \r\P\P
  6715. Partial match: \x0d
  6716. /^\R{2,3}x/
  6717. \r\P
  6718. Partial match: \x0d
  6719. \r\P\P
  6720. Partial match: \x0d
  6721. \r\r\P
  6722. Partial match: \x0d\x0d
  6723. \r\r\P\P
  6724. Partial match: \x0d\x0d
  6725. \r\r\r\P
  6726. Partial match: \x0d\x0d\x0d
  6727. \r\r\r\P\P
  6728. Partial match: \x0d\x0d\x0d
  6729. \r\rx
  6730. 0: \x0d\x0dx
  6731. \r\r\rx
  6732. 0: \x0d\x0d\x0dx
  6733. /^\R{2,3}?x/
  6734. \r\P
  6735. Partial match: \x0d
  6736. \r\P\P
  6737. Partial match: \x0d
  6738. \r\r\P
  6739. Partial match: \x0d\x0d
  6740. \r\r\P\P
  6741. Partial match: \x0d\x0d
  6742. \r\r\r\P
  6743. Partial match: \x0d\x0d\x0d
  6744. \r\r\r\P\P
  6745. Partial match: \x0d\x0d\x0d
  6746. \r\rx
  6747. 0: \x0d\x0dx
  6748. \r\r\rx
  6749. 0: \x0d\x0d\x0dx
  6750. /^\R?x/
  6751. \r\P
  6752. Partial match: \x0d
  6753. \r\P\P
  6754. Partial match: \x0d
  6755. x
  6756. 0: x
  6757. \rx
  6758. 0: \x0dx
  6759. /^\R+x/
  6760. \r\P
  6761. Partial match: \x0d
  6762. \r\P\P
  6763. Partial match: \x0d
  6764. \r\n\P
  6765. Partial match: \x0d\x0a
  6766. \r\n\P\P
  6767. Partial match: \x0d\x0a
  6768. \rx
  6769. 0: \x0dx
  6770. /^a$/<CRLF>
  6771. a\r\P
  6772. Partial match: a\x0d
  6773. a\r\P\P
  6774. Partial match: a\x0d
  6775. /^a$/m<CRLF>
  6776. a\r\P
  6777. Partial match: a\x0d
  6778. a\r\P\P
  6779. Partial match: a\x0d
  6780. /^(a$|a\r)/<CRLF>
  6781. a\r\P
  6782. 0: a\x0d
  6783. a\r\P\P
  6784. Partial match: a\x0d
  6785. /^(a$|a\r)/m<CRLF>
  6786. a\r\P
  6787. 0: a\x0d
  6788. a\r\P\P
  6789. Partial match: a\x0d
  6790. /./<CRLF>
  6791. \r\P
  6792. 0: \x0d
  6793. \r\P\P
  6794. Partial match: \x0d
  6795. /.{2,3}/<CRLF>
  6796. \r\P
  6797. Partial match: \x0d
  6798. \r\P\P
  6799. Partial match: \x0d
  6800. \r\r\P
  6801. 0: \x0d\x0d
  6802. \r\r\P\P
  6803. Partial match: \x0d\x0d
  6804. \r\r\r\P
  6805. 0: \x0d\x0d\x0d
  6806. \r\r\r\P\P
  6807. Partial match: \x0d\x0d\x0d
  6808. /.{2,3}?/<CRLF>
  6809. \r\P
  6810. Partial match: \x0d
  6811. \r\P\P
  6812. Partial match: \x0d
  6813. \r\r\P
  6814. 0: \x0d\x0d
  6815. \r\r\P\P
  6816. Partial match: \x0d\x0d
  6817. \r\r\r\P
  6818. 0: \x0d\x0d\x0d
  6819. 1: \x0d\x0d
  6820. \r\r\r\P\P
  6821. Partial match: \x0d\x0d\x0d
  6822. /-- Test simple validity check for restarts --/
  6823. /abcdef/
  6824. abc\R
  6825. Error -30 (invalid data in workspace for DFA restart)
  6826. /<H((?(?!<H|F>)(.)|(?R))++)*F>/
  6827. text <H more text <H texting more hexA0-"\xA0" hex above 7F-"\xBC" F> text xxxxx <H text F> text F> text2 <H text sample F> more text.
  6828. 0: <H more text <H texting more hexA0-"\xa0" hex above 7F-"\xbc" F> text xxxxx <H text F> text F>
  6829. /^(?>.{4})abc|^\w\w.xabcd/
  6830. xxxxabcd
  6831. 0: xxxxabcd
  6832. 1: xxxxabc
  6833. xx\xa0xabcd
  6834. 0: xx\xa0xabcd
  6835. 1: xx\xa0xabc
  6836. /^(.{4}){2}+abc|^\w\w.x\w\w\w\wabcd/
  6837. xxxxxxxxabcd
  6838. 0: xxxxxxxxabcd
  6839. 1: xxxxxxxxabc
  6840. xx\xa0xxxxxabcd
  6841. 0: xx\xa0xxxxxabcd
  6842. 1: xx\xa0xxxxxabc
  6843. /abcd/
  6844. abcd\O0
  6845. Matched, but offsets vector is too small to show all matches
  6846. /-- These tests show up auto-possessification --/
  6847. /[ab]*/
  6848. aaaa
  6849. 0: aaaa
  6850. /[ab]*?/
  6851. aaaa
  6852. 0: aaaa
  6853. 1: aaa
  6854. 2: aa
  6855. 3: a
  6856. 4:
  6857. /[ab]?/
  6858. aaaa
  6859. 0: a
  6860. /[ab]??/
  6861. aaaa
  6862. 0: a
  6863. 1:
  6864. /[ab]+/
  6865. aaaa
  6866. 0: aaaa
  6867. /[ab]+?/
  6868. aaaa
  6869. 0: aaaa
  6870. 1: aaa
  6871. 2: aa
  6872. 3: a
  6873. /[ab]{2,3}/
  6874. aaaa
  6875. 0: aaa
  6876. /[ab]{2,3}?/
  6877. aaaa
  6878. 0: aaa
  6879. 1: aa
  6880. /[ab]{2,}/
  6881. aaaa
  6882. 0: aaaa
  6883. /[ab]{2,}?/
  6884. aaaa
  6885. 0: aaaa
  6886. 1: aaa
  6887. 2: aa
  6888. '\A(?:[^\"]++|\"(?:[^\"]*+|\"\")*+\")++'
  6889. NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
  6890. 0: NON QUOTED "QUOT""ED" AFTER
  6891. '\A(?:[^\"]++|\"(?:[^\"]++|\"\")*+\")++'
  6892. NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED
  6893. 0: NON QUOTED "QUOT""ED" AFTER
  6894. /(?(?!)a|b)/
  6895. bbb
  6896. 0: b
  6897. aaa
  6898. No match
  6899. /()()a+/O=
  6900. aaa\D
  6901. ** Show all captures ignored after DFA matching
  6902. 0: aaa
  6903. 1: aa
  6904. 2: a
  6905. a\D
  6906. ** Show all captures ignored after DFA matching
  6907. 0: a
  6908. /(02-)?[0-9]{3}-[0-9]{3}/
  6909. 02-123-123
  6910. 0: 02-123-123
  6911. /-- End of testinput8 --/