On Mon, Jan 21, 2002 at 03:48:58PM +0000, Robin Houston wrote: > On Mon, Jan 21, 2002 at 04:32:59PM +0100, [EMAIL PROTECTED] wrote: > > You are right, I had forgotten a case, [...] > > This results in (a sloooow program): > > There's something wrong here. Your regex matches "abcb", which isn't > shrinkable.
Duh! I was writing (...)+ where I should have written (...)\1*. Here's a corrected version (making for quite a faster regex): #!/usr/bin/perl use strict; use warnings qw /all/; my @strings; my $p; my $max = 255; # Use a higher number for Unicode. foreach my $c (1 .. $max) { push @strings => sprintf '^(.*)\x%02x.*\%d[\x00-\x%02x].*$' => $c, ++ $p, $c - 1; push @strings => sprintf '^([\x00-\x%02x].*)\x%02x.*\%d$' => $c - 1, $c, ++ $p; push @strings => sprintf '^((.*)[\x00-\x%02x].*)\%d*\%d\x%02x.*\%d$' => $c - 1, $p +1, $p + 2, $c, $p + 1; $p += 2; } my $regex = join "|" => map {"(?:$_)"} @strings; $regex =~ s/\|/|\n /g; my $rgx = "/$regex/sx"; print $rgx, "\n"; __END__ Here's some test output: abcb -> Non-shrinkable aaba -> Shrinkable foo -> Non-shrinkable bar -> Shrinkable aba -> Shrinkable bab -> Shrinkable aabaa -> Shrinkable bbabb -> Shrinkable abcabd -> Non-shrinkable abdefgabchijk -> Shrinkable /(?:^(.*)\x01.*\1[\x00-\x00].*$)| (?:^([\x00-\x00].*)\x01.*\2$)| (?:^((.*)[\x00-\x00].*)\3*\4\x01.*\3$)| (?:^(.*)\x02.*\5[\x00-\x01].*$)| (?:^([\x00-\x01].*)\x02.*\6$)| (?:^((.*)[\x00-\x01].*)\7*\8\x02.*\7$)| (?:^(.*)\x03.*\9[\x00-\x02].*$)| (?:^([\x00-\x02].*)\x03.*\10$)| (?:^((.*)[\x00-\x02].*)\11*\12\x03.*\11$)| (?:^(.*)\x04.*\13[\x00-\x03].*$)| (?:^([\x00-\x03].*)\x04.*\14$)| (?:^((.*)[\x00-\x03].*)\15*\16\x04.*\15$)| (?:^(.*)\x05.*\17[\x00-\x04].*$)| (?:^([\x00-\x04].*)\x05.*\18$)| (?:^((.*)[\x00-\x04].*)\19*\20\x05.*\19$)| (?:^(.*)\x06.*\21[\x00-\x05].*$)| (?:^([\x00-\x05].*)\x06.*\22$)| (?:^((.*)[\x00-\x05].*)\23*\24\x06.*\23$)| (?:^(.*)\x07.*\25[\x00-\x06].*$)| (?:^([\x00-\x06].*)\x07.*\26$)| (?:^((.*)[\x00-\x06].*)\27*\28\x07.*\27$)| (?:^(.*)\x08.*\29[\x00-\x07].*$)| (?:^([\x00-\x07].*)\x08.*\30$)| (?:^((.*)[\x00-\x07].*)\31*\32\x08.*\31$)| (?:^(.*)\x09.*\33[\x00-\x08].*$)| (?:^([\x00-\x08].*)\x09.*\34$)| (?:^((.*)[\x00-\x08].*)\35*\36\x09.*\35$)| (?:^(.*)\x0a.*\37[\x00-\x09].*$)| (?:^([\x00-\x09].*)\x0a.*\38$)| (?:^((.*)[\x00-\x09].*)\39*\40\x0a.*\39$)| (?:^(.*)\x0b.*\41[\x00-\x0a].*$)| (?:^([\x00-\x0a].*)\x0b.*\42$)| (?:^((.*)[\x00-\x0a].*)\43*\44\x0b.*\43$)| (?:^(.*)\x0c.*\45[\x00-\x0b].*$)| (?:^([\x00-\x0b].*)\x0c.*\46$)| (?:^((.*)[\x00-\x0b].*)\47*\48\x0c.*\47$)| (?:^(.*)\x0d.*\49[\x00-\x0c].*$)| (?:^([\x00-\x0c].*)\x0d.*\50$)| (?:^((.*)[\x00-\x0c].*)\51*\52\x0d.*\51$)| (?:^(.*)\x0e.*\53[\x00-\x0d].*$)| (?:^([\x00-\x0d].*)\x0e.*\54$)| (?:^((.*)[\x00-\x0d].*)\55*\56\x0e.*\55$)| (?:^(.*)\x0f.*\57[\x00-\x0e].*$)| (?:^([\x00-\x0e].*)\x0f.*\58$)| (?:^((.*)[\x00-\x0e].*)\59*\60\x0f.*\59$)| (?:^(.*)\x10.*\61[\x00-\x0f].*$)| (?:^([\x00-\x0f].*)\x10.*\62$)| (?:^((.*)[\x00-\x0f].*)\63*\64\x10.*\63$)| (?:^(.*)\x11.*\65[\x00-\x10].*$)| (?:^([\x00-\x10].*)\x11.*\66$)| (?:^((.*)[\x00-\x10].*)\67*\68\x11.*\67$)| (?:^(.*)\x12.*\69[\x00-\x11].*$)| (?:^([\x00-\x11].*)\x12.*\70$)| (?:^((.*)[\x00-\x11].*)\71*\72\x12.*\71$)| (?:^(.*)\x13.*\73[\x00-\x12].*$)| (?:^([\x00-\x12].*)\x13.*\74$)| (?:^((.*)[\x00-\x12].*)\75*\76\x13.*\75$)| (?:^(.*)\x14.*\77[\x00-\x13].*$)| (?:^([\x00-\x13].*)\x14.*\78$)| (?:^((.*)[\x00-\x13].*)\79*\80\x14.*\79$)| (?:^(.*)\x15.*\81[\x00-\x14].*$)| (?:^([\x00-\x14].*)\x15.*\82$)| (?:^((.*)[\x00-\x14].*)\83*\84\x15.*\83$)| (?:^(.*)\x16.*\85[\x00-\x15].*$)| (?:^([\x00-\x15].*)\x16.*\86$)| (?:^((.*)[\x00-\x15].*)\87*\88\x16.*\87$)| (?:^(.*)\x17.*\89[\x00-\x16].*$)| (?:^([\x00-\x16].*)\x17.*\90$)| (?:^((.*)[\x00-\x16].*)\91*\92\x17.*\91$)| (?:^(.*)\x18.*\93[\x00-\x17].*$)| (?:^([\x00-\x17].*)\x18.*\94$)| (?:^((.*)[\x00-\x17].*)\95*\96\x18.*\95$)| (?:^(.*)\x19.*\97[\x00-\x18].*$)| (?:^([\x00-\x18].*)\x19.*\98$)| (?:^((.*)[\x00-\x18].*)\99*\100\x19.*\99$)| (?:^(.*)\x1a.*\101[\x00-\x19].*$)| (?:^([\x00-\x19].*)\x1a.*\102$)| (?:^((.*)[\x00-\x19].*)\103*\104\x1a.*\103$)| (?:^(.*)\x1b.*\105[\x00-\x1a].*$)| (?:^([\x00-\x1a].*)\x1b.*\106$)| (?:^((.*)[\x00-\x1a].*)\107*\108\x1b.*\107$)| (?:^(.*)\x1c.*\109[\x00-\x1b].*$)| (?:^([\x00-\x1b].*)\x1c.*\110$)| (?:^((.*)[\x00-\x1b].*)\111*\112\x1c.*\111$)| (?:^(.*)\x1d.*\113[\x00-\x1c].*$)| (?:^([\x00-\x1c].*)\x1d.*\114$)| (?:^((.*)[\x00-\x1c].*)\115*\116\x1d.*\115$)| (?:^(.*)\x1e.*\117[\x00-\x1d].*$)| (?:^([\x00-\x1d].*)\x1e.*\118$)| (?:^((.*)[\x00-\x1d].*)\119*\120\x1e.*\119$)| (?:^(.*)\x1f.*\121[\x00-\x1e].*$)| (?:^([\x00-\x1e].*)\x1f.*\122$)| (?:^((.*)[\x00-\x1e].*)\123*\124\x1f.*\123$)| (?:^(.*)\x20.*\125[\x00-\x1f].*$)| (?:^([\x00-\x1f].*)\x20.*\126$)| (?:^((.*)[\x00-\x1f].*)\127*\128\x20.*\127$)| (?:^(.*)\x21.*\129[\x00-\x20].*$)| (?:^([\x00-\x20].*)\x21.*\130$)| (?:^((.*)[\x00-\x20].*)\131*\132\x21.*\131$)| (?:^(.*)\x22.*\133[\x00-\x21].*$)| (?:^([\x00-\x21].*)\x22.*\134$)| (?:^((.*)[\x00-\x21].*)\135*\136\x22.*\135$)| (?:^(.*)\x23.*\137[\x00-\x22].*$)| (?:^([\x00-\x22].*)\x23.*\138$)| (?:^((.*)[\x00-\x22].*)\139*\140\x23.*\139$)| (?:^(.*)\x24.*\141[\x00-\x23].*$)| (?:^([\x00-\x23].*)\x24.*\142$)| (?:^((.*)[\x00-\x23].*)\143*\144\x24.*\143$)| (?:^(.*)\x25.*\145[\x00-\x24].*$)| (?:^([\x00-\x24].*)\x25.*\146$)| (?:^((.*)[\x00-\x24].*)\147*\148\x25.*\147$)| (?:^(.*)\x26.*\149[\x00-\x25].*$)| (?:^([\x00-\x25].*)\x26.*\150$)| (?:^((.*)[\x00-\x25].*)\151*\152\x26.*\151$)| (?:^(.*)\x27.*\153[\x00-\x26].*$)| (?:^([\x00-\x26].*)\x27.*\154$)| (?:^((.*)[\x00-\x26].*)\155*\156\x27.*\155$)| (?:^(.*)\x28.*\157[\x00-\x27].*$)| (?:^([\x00-\x27].*)\x28.*\158$)| (?:^((.*)[\x00-\x27].*)\159*\160\x28.*\159$)| (?:^(.*)\x29.*\161[\x00-\x28].*$)| (?:^([\x00-\x28].*)\x29.*\162$)| (?:^((.*)[\x00-\x28].*)\163*\164\x29.*\163$)| (?:^(.*)\x2a.*\165[\x00-\x29].*$)| (?:^([\x00-\x29].*)\x2a.*\166$)| (?:^((.*)[\x00-\x29].*)\167*\168\x2a.*\167$)| (?:^(.*)\x2b.*\169[\x00-\x2a].*$)| (?:^([\x00-\x2a].*)\x2b.*\170$)| (?:^((.*)[\x00-\x2a].*)\171*\172\x2b.*\171$)| (?:^(.*)\x2c.*\173[\x00-\x2b].*$)| (?:^([\x00-\x2b].*)\x2c.*\174$)| (?:^((.*)[\x00-\x2b].*)\175*\176\x2c.*\175$)| (?:^(.*)\x2d.*\177[\x00-\x2c].*$)| (?:^([\x00-\x2c].*)\x2d.*\178$)| (?:^((.*)[\x00-\x2c].*)\179*\180\x2d.*\179$)| (?:^(.*)\x2e.*\181[\x00-\x2d].*$)| (?:^([\x00-\x2d].*)\x2e.*\182$)| (?:^((.*)[\x00-\x2d].*)\183*\184\x2e.*\183$)| (?:^(.*)\x2f.*\185[\x00-\x2e].*$)| (?:^([\x00-\x2e].*)\x2f.*\186$)| (?:^((.*)[\x00-\x2e].*)\187*\188\x2f.*\187$)| (?:^(.*)\x30.*\189[\x00-\x2f].*$)| (?:^([\x00-\x2f].*)\x30.*\190$)| (?:^((.*)[\x00-\x2f].*)\191*\192\x30.*\191$)| (?:^(.*)\x31.*\193[\x00-\x30].*$)| (?:^([\x00-\x30].*)\x31.*\194$)| (?:^((.*)[\x00-\x30].*)\195*\196\x31.*\195$)| (?:^(.*)\x32.*\197[\x00-\x31].*$)| (?:^([\x00-\x31].*)\x32.*\198$)| (?:^((.*)[\x00-\x31].*)\199*\200\x32.*\199$)| (?:^(.*)\x33.*\201[\x00-\x32].*$)| (?:^([\x00-\x32].*)\x33.*\202$)| (?:^((.*)[\x00-\x32].*)\203*\204\x33.*\203$)| (?:^(.*)\x34.*\205[\x00-\x33].*$)| (?:^([\x00-\x33].*)\x34.*\206$)| (?:^((.*)[\x00-\x33].*)\207*\208\x34.*\207$)| (?:^(.*)\x35.*\209[\x00-\x34].*$)| (?:^([\x00-\x34].*)\x35.*\210$)| (?:^((.*)[\x00-\x34].*)\211*\212\x35.*\211$)| (?:^(.*)\x36.*\213[\x00-\x35].*$)| (?:^([\x00-\x35].*)\x36.*\214$)| (?:^((.*)[\x00-\x35].*)\215*\216\x36.*\215$)| (?:^(.*)\x37.*\217[\x00-\x36].*$)| (?:^([\x00-\x36].*)\x37.*\218$)| (?:^((.*)[\x00-\x36].*)\219*\220\x37.*\219$)| (?:^(.*)\x38.*\221[\x00-\x37].*$)| (?:^([\x00-\x37].*)\x38.*\222$)| (?:^((.*)[\x00-\x37].*)\223*\224\x38.*\223$)| (?:^(.*)\x39.*\225[\x00-\x38].*$)| (?:^([\x00-\x38].*)\x39.*\226$)| (?:^((.*)[\x00-\x38].*)\227*\228\x39.*\227$)| (?:^(.*)\x3a.*\229[\x00-\x39].*$)| (?:^([\x00-\x39].*)\x3a.*\230$)| (?:^((.*)[\x00-\x39].*)\231*\232\x3a.*\231$)| (?:^(.*)\x3b.*\233[\x00-\x3a].*$)| (?:^([\x00-\x3a].*)\x3b.*\234$)| (?:^((.*)[\x00-\x3a].*)\235*\236\x3b.*\235$)| (?:^(.*)\x3c.*\237[\x00-\x3b].*$)| (?:^([\x00-\x3b].*)\x3c.*\238$)| (?:^((.*)[\x00-\x3b].*)\239*\240\x3c.*\239$)| (?:^(.*)\x3d.*\241[\x00-\x3c].*$)| (?:^([\x00-\x3c].*)\x3d.*\242$)| (?:^((.*)[\x00-\x3c].*)\243*\244\x3d.*\243$)| (?:^(.*)\x3e.*\245[\x00-\x3d].*$)| (?:^([\x00-\x3d].*)\x3e.*\246$)| (?:^((.*)[\x00-\x3d].*)\247*\248\x3e.*\247$)| (?:^(.*)\x3f.*\249[\x00-\x3e].*$)| (?:^([\x00-\x3e].*)\x3f.*\250$)| (?:^((.*)[\x00-\x3e].*)\251*\252\x3f.*\251$)| (?:^(.*)\x40.*\253[\x00-\x3f].*$)| (?:^([\x00-\x3f].*)\x40.*\254$)| (?:^((.*)[\x00-\x3f].*)\255*\256\x40.*\255$)| (?:^(.*)\x41.*\257[\x00-\x40].*$)| (?:^([\x00-\x40].*)\x41.*\258$)| (?:^((.*)[\x00-\x40].*)\259*\260\x41.*\259$)| (?:^(.*)\x42.*\261[\x00-\x41].*$)| (?:^([\x00-\x41].*)\x42.*\262$)| (?:^((.*)[\x00-\x41].*)\263*\264\x42.*\263$)| (?:^(.*)\x43.*\265[\x00-\x42].*$)| (?:^([\x00-\x42].*)\x43.*\266$)| (?:^((.*)[\x00-\x42].*)\267*\268\x43.*\267$)| (?:^(.*)\x44.*\269[\x00-\x43].*$)| (?:^([\x00-\x43].*)\x44.*\270$)| (?:^((.*)[\x00-\x43].*)\271*\272\x44.*\271$)| (?:^(.*)\x45.*\273[\x00-\x44].*$)| (?:^([\x00-\x44].*)\x45.*\274$)| (?:^((.*)[\x00-\x44].*)\275*\276\x45.*\275$)| (?:^(.*)\x46.*\277[\x00-\x45].*$)| (?:^([\x00-\x45].*)\x46.*\278$)| (?:^((.*)[\x00-\x45].*)\279*\280\x46.*\279$)| (?:^(.*)\x47.*\281[\x00-\x46].*$)| (?:^([\x00-\x46].*)\x47.*\282$)| (?:^((.*)[\x00-\x46].*)\283*\284\x47.*\283$)| (?:^(.*)\x48.*\285[\x00-\x47].*$)| (?:^([\x00-\x47].*)\x48.*\286$)| (?:^((.*)[\x00-\x47].*)\287*\288\x48.*\287$)| (?:^(.*)\x49.*\289[\x00-\x48].*$)| (?:^([\x00-\x48].*)\x49.*\290$)| (?:^((.*)[\x00-\x48].*)\291*\292\x49.*\291$)| (?:^(.*)\x4a.*\293[\x00-\x49].*$)| (?:^([\x00-\x49].*)\x4a.*\294$)| (?:^((.*)[\x00-\x49].*)\295*\296\x4a.*\295$)| (?:^(.*)\x4b.*\297[\x00-\x4a].*$)| (?:^([\x00-\x4a].*)\x4b.*\298$)| (?:^((.*)[\x00-\x4a].*)\299*\300\x4b.*\299$)| (?:^(.*)\x4c.*\301[\x00-\x4b].*$)| (?:^([\x00-\x4b].*)\x4c.*\302$)| (?:^((.*)[\x00-\x4b].*)\303*\304\x4c.*\303$)| (?:^(.*)\x4d.*\305[\x00-\x4c].*$)| (?:^([\x00-\x4c].*)\x4d.*\306$)| (?:^((.*)[\x00-\x4c].*)\307*\308\x4d.*\307$)| (?:^(.*)\x4e.*\309[\x00-\x4d].*$)| (?:^([\x00-\x4d].*)\x4e.*\310$)| (?:^((.*)[\x00-\x4d].*)\311*\312\x4e.*\311$)| (?:^(.*)\x4f.*\313[\x00-\x4e].*$)| (?:^([\x00-\x4e].*)\x4f.*\314$)| (?:^((.*)[\x00-\x4e].*)\315*\316\x4f.*\315$)| (?:^(.*)\x50.*\317[\x00-\x4f].*$)| (?:^([\x00-\x4f].*)\x50.*\318$)| (?:^((.*)[\x00-\x4f].*)\319*\320\x50.*\319$)| (?:^(.*)\x51.*\321[\x00-\x50].*$)| (?:^([\x00-\x50].*)\x51.*\322$)| (?:^((.*)[\x00-\x50].*)\323*\324\x51.*\323$)| (?:^(.*)\x52.*\325[\x00-\x51].*$)| (?:^([\x00-\x51].*)\x52.*\326$)| (?:^((.*)[\x00-\x51].*)\327*\328\x52.*\327$)| (?:^(.*)\x53.*\329[\x00-\x52].*$)| (?:^([\x00-\x52].*)\x53.*\330$)| (?:^((.*)[\x00-\x52].*)\331*\332\x53.*\331$)| (?:^(.*)\x54.*\333[\x00-\x53].*$)| (?:^([\x00-\x53].*)\x54.*\334$)| (?:^((.*)[\x00-\x53].*)\335*\336\x54.*\335$)| (?:^(.*)\x55.*\337[\x00-\x54].*$)| (?:^([\x00-\x54].*)\x55.*\338$)| (?:^((.*)[\x00-\x54].*)\339*\340\x55.*\339$)| (?:^(.*)\x56.*\341[\x00-\x55].*$)| (?:^([\x00-\x55].*)\x56.*\342$)| (?:^((.*)[\x00-\x55].*)\343*\344\x56.*\343$)| (?:^(.*)\x57.*\345[\x00-\x56].*$)| (?:^([\x00-\x56].*)\x57.*\346$)| (?:^((.*)[\x00-\x56].*)\347*\348\x57.*\347$)| (?:^(.*)\x58.*\349[\x00-\x57].*$)| (?:^([\x00-\x57].*)\x58.*\350$)| (?:^((.*)[\x00-\x57].*)\351*\352\x58.*\351$)| (?:^(.*)\x59.*\353[\x00-\x58].*$)| (?:^([\x00-\x58].*)\x59.*\354$)| (?:^((.*)[\x00-\x58].*)\355*\356\x59.*\355$)| (?:^(.*)\x5a.*\357[\x00-\x59].*$)| (?:^([\x00-\x59].*)\x5a.*\358$)| (?:^((.*)[\x00-\x59].*)\359*\360\x5a.*\359$)| (?:^(.*)\x5b.*\361[\x00-\x5a].*$)| (?:^([\x00-\x5a].*)\x5b.*\362$)| (?:^((.*)[\x00-\x5a].*)\363*\364\x5b.*\363$)| (?:^(.*)\x5c.*\365[\x00-\x5b].*$)| (?:^([\x00-\x5b].*)\x5c.*\366$)| (?:^((.*)[\x00-\x5b].*)\367*\368\x5c.*\367$)| (?:^(.*)\x5d.*\369[\x00-\x5c].*$)| (?:^([\x00-\x5c].*)\x5d.*\370$)| (?:^((.*)[\x00-\x5c].*)\371*\372\x5d.*\371$)| (?:^(.*)\x5e.*\373[\x00-\x5d].*$)| (?:^([\x00-\x5d].*)\x5e.*\374$)| (?:^((.*)[\x00-\x5d].*)\375*\376\x5e.*\375$)| (?:^(.*)\x5f.*\377[\x00-\x5e].*$)| (?:^([\x00-\x5e].*)\x5f.*\378$)| (?:^((.*)[\x00-\x5e].*)\379*\380\x5f.*\379$)| (?:^(.*)\x60.*\381[\x00-\x5f].*$)| (?:^([\x00-\x5f].*)\x60.*\382$)| (?:^((.*)[\x00-\x5f].*)\383*\384\x60.*\383$)| (?:^(.*)\x61.*\385[\x00-\x60].*$)| (?:^([\x00-\x60].*)\x61.*\386$)| (?:^((.*)[\x00-\x60].*)\387*\388\x61.*\387$)| (?:^(.*)\x62.*\389[\x00-\x61].*$)| (?:^([\x00-\x61].*)\x62.*\390$)| (?:^((.*)[\x00-\x61].*)\391*\392\x62.*\391$)| (?:^(.*)\x63.*\393[\x00-\x62].*$)| (?:^([\x00-\x62].*)\x63.*\394$)| (?:^((.*)[\x00-\x62].*)\395*\396\x63.*\395$)| (?:^(.*)\x64.*\397[\x00-\x63].*$)| (?:^([\x00-\x63].*)\x64.*\398$)| (?:^((.*)[\x00-\x63].*)\399*\400\x64.*\399$)| (?:^(.*)\x65.*\401[\x00-\x64].*$)| (?:^([\x00-\x64].*)\x65.*\402$)| (?:^((.*)[\x00-\x64].*)\403*\404\x65.*\403$)| (?:^(.*)\x66.*\405[\x00-\x65].*$)| (?:^([\x00-\x65].*)\x66.*\406$)| (?:^((.*)[\x00-\x65].*)\407*\408\x66.*\407$)| (?:^(.*)\x67.*\409[\x00-\x66].*$)| (?:^([\x00-\x66].*)\x67.*\410$)| (?:^((.*)[\x00-\x66].*)\411*\412\x67.*\411$)| (?:^(.*)\x68.*\413[\x00-\x67].*$)| (?:^([\x00-\x67].*)\x68.*\414$)| (?:^((.*)[\x00-\x67].*)\415*\416\x68.*\415$)| (?:^(.*)\x69.*\417[\x00-\x68].*$)| (?:^([\x00-\x68].*)\x69.*\418$)| (?:^((.*)[\x00-\x68].*)\419*\420\x69.*\419$)| (?:^(.*)\x6a.*\421[\x00-\x69].*$)| (?:^([\x00-\x69].*)\x6a.*\422$)| (?:^((.*)[\x00-\x69].*)\423*\424\x6a.*\423$)| (?:^(.*)\x6b.*\425[\x00-\x6a].*$)| (?:^([\x00-\x6a].*)\x6b.*\426$)| (?:^((.*)[\x00-\x6a].*)\427*\428\x6b.*\427$)| (?:^(.*)\x6c.*\429[\x00-\x6b].*$)| (?:^([\x00-\x6b].*)\x6c.*\430$)| (?:^((.*)[\x00-\x6b].*)\431*\432\x6c.*\431$)| (?:^(.*)\x6d.*\433[\x00-\x6c].*$)| (?:^([\x00-\x6c].*)\x6d.*\434$)| (?:^((.*)[\x00-\x6c].*)\435*\436\x6d.*\435$)| (?:^(.*)\x6e.*\437[\x00-\x6d].*$)| (?:^([\x00-\x6d].*)\x6e.*\438$)| (?:^((.*)[\x00-\x6d].*)\439*\440\x6e.*\439$)| (?:^(.*)\x6f.*\441[\x00-\x6e].*$)| (?:^([\x00-\x6e].*)\x6f.*\442$)| (?:^((.*)[\x00-\x6e].*)\443*\444\x6f.*\443$)| (?:^(.*)\x70.*\445[\x00-\x6f].*$)| (?:^([\x00-\x6f].*)\x70.*\446$)| (?:^((.*)[\x00-\x6f].*)\447*\448\x70.*\447$)| (?:^(.*)\x71.*\449[\x00-\x70].*$)| (?:^([\x00-\x70].*)\x71.*\450$)| (?:^((.*)[\x00-\x70].*)\451*\452\x71.*\451$)| (?:^(.*)\x72.*\453[\x00-\x71].*$)| (?:^([\x00-\x71].*)\x72.*\454$)| (?:^((.*)[\x00-\x71].*)\455*\456\x72.*\455$)| (?:^(.*)\x73.*\457[\x00-\x72].*$)| (?:^([\x00-\x72].*)\x73.*\458$)| (?:^((.*)[\x00-\x72].*)\459*\460\x73.*\459$)| (?:^(.*)\x74.*\461[\x00-\x73].*$)| (?:^([\x00-\x73].*)\x74.*\462$)| (?:^((.*)[\x00-\x73].*)\463*\464\x74.*\463$)| (?:^(.*)\x75.*\465[\x00-\x74].*$)| (?:^([\x00-\x74].*)\x75.*\466$)| (?:^((.*)[\x00-\x74].*)\467*\468\x75.*\467$)| (?:^(.*)\x76.*\469[\x00-\x75].*$)| (?:^([\x00-\x75].*)\x76.*\470$)| (?:^((.*)[\x00-\x75].*)\471*\472\x76.*\471$)| (?:^(.*)\x77.*\473[\x00-\x76].*$)| (?:^([\x00-\x76].*)\x77.*\474$)| (?:^((.*)[\x00-\x76].*)\475*\476\x77.*\475$)| (?:^(.*)\x78.*\477[\x00-\x77].*$)| (?:^([\x00-\x77].*)\x78.*\478$)| (?:^((.*)[\x00-\x77].*)\479*\480\x78.*\479$)| (?:^(.*)\x79.*\481[\x00-\x78].*$)| (?:^([\x00-\x78].*)\x79.*\482$)| (?:^((.*)[\x00-\x78].*)\483*\484\x79.*\483$)| (?:^(.*)\x7a.*\485[\x00-\x79].*$)| (?:^([\x00-\x79].*)\x7a.*\486$)| (?:^((.*)[\x00-\x79].*)\487*\488\x7a.*\487$)| (?:^(.*)\x7b.*\489[\x00-\x7a].*$)| (?:^([\x00-\x7a].*)\x7b.*\490$)| (?:^((.*)[\x00-\x7a].*)\491*\492\x7b.*\491$)| (?:^(.*)\x7c.*\493[\x00-\x7b].*$)| (?:^([\x00-\x7b].*)\x7c.*\494$)| (?:^((.*)[\x00-\x7b].*)\495*\496\x7c.*\495$)| (?:^(.*)\x7d.*\497[\x00-\x7c].*$)| (?:^([\x00-\x7c].*)\x7d.*\498$)| (?:^((.*)[\x00-\x7c].*)\499*\500\x7d.*\499$)| (?:^(.*)\x7e.*\501[\x00-\x7d].*$)| (?:^([\x00-\x7d].*)\x7e.*\502$)| (?:^((.*)[\x00-\x7d].*)\503*\504\x7e.*\503$)| (?:^(.*)\x7f.*\505[\x00-\x7e].*$)| (?:^([\x00-\x7e].*)\x7f.*\506$)| (?:^((.*)[\x00-\x7e].*)\507*\508\x7f.*\507$)| (?:^(.*)\x80.*\509[\x00-\x7f].*$)| (?:^([\x00-\x7f].*)\x80.*\510$)| (?:^((.*)[\x00-\x7f].*)\511*\512\x80.*\511$)| (?:^(.*)\x81.*\513[\x00-\x80].*$)| (?:^([\x00-\x80].*)\x81.*\514$)| (?:^((.*)[\x00-\x80].*)\515*\516\x81.*\515$)| (?:^(.*)\x82.*\517[\x00-\x81].*$)| (?:^([\x00-\x81].*)\x82.*\518$)| (?:^((.*)[\x00-\x81].*)\519*\520\x82.*\519$)| (?:^(.*)\x83.*\521[\x00-\x82].*$)| (?:^([\x00-\x82].*)\x83.*\522$)| (?:^((.*)[\x00-\x82].*)\523*\524\x83.*\523$)| (?:^(.*)\x84.*\525[\x00-\x83].*$)| (?:^([\x00-\x83].*)\x84.*\526$)| (?:^((.*)[\x00-\x83].*)\527*\528\x84.*\527$)| (?:^(.*)\x85.*\529[\x00-\x84].*$)| (?:^([\x00-\x84].*)\x85.*\530$)| (?:^((.*)[\x00-\x84].*)\531*\532\x85.*\531$)| (?:^(.*)\x86.*\533[\x00-\x85].*$)| (?:^([\x00-\x85].*)\x86.*\534$)| (?:^((.*)[\x00-\x85].*)\535*\536\x86.*\535$)| (?:^(.*)\x87.*\537[\x00-\x86].*$)| (?:^([\x00-\x86].*)\x87.*\538$)| (?:^((.*)[\x00-\x86].*)\539*\540\x87.*\539$)| (?:^(.*)\x88.*\541[\x00-\x87].*$)| (?:^([\x00-\x87].*)\x88.*\542$)| (?:^((.*)[\x00-\x87].*)\543*\544\x88.*\543$)| (?:^(.*)\x89.*\545[\x00-\x88].*$)| (?:^([\x00-\x88].*)\x89.*\546$)| (?:^((.*)[\x00-\x88].*)\547*\548\x89.*\547$)| (?:^(.*)\x8a.*\549[\x00-\x89].*$)| (?:^([\x00-\x89].*)\x8a.*\550$)| (?:^((.*)[\x00-\x89].*)\551*\552\x8a.*\551$)| (?:^(.*)\x8b.*\553[\x00-\x8a].*$)| (?:^([\x00-\x8a].*)\x8b.*\554$)| (?:^((.*)[\x00-\x8a].*)\555*\556\x8b.*\555$)| (?:^(.*)\x8c.*\557[\x00-\x8b].*$)| (?:^([\x00-\x8b].*)\x8c.*\558$)| (?:^((.*)[\x00-\x8b].*)\559*\560\x8c.*\559$)| (?:^(.*)\x8d.*\561[\x00-\x8c].*$)| (?:^([\x00-\x8c].*)\x8d.*\562$)| (?:^((.*)[\x00-\x8c].*)\563*\564\x8d.*\563$)| (?:^(.*)\x8e.*\565[\x00-\x8d].*$)| (?:^([\x00-\x8d].*)\x8e.*\566$)| (?:^((.*)[\x00-\x8d].*)\567*\568\x8e.*\567$)| (?:^(.*)\x8f.*\569[\x00-\x8e].*$)| (?:^([\x00-\x8e].*)\x8f.*\570$)| (?:^((.*)[\x00-\x8e].*)\571*\572\x8f.*\571$)| (?:^(.*)\x90.*\573[\x00-\x8f].*$)| (?:^([\x00-\x8f].*)\x90.*\574$)| (?:^((.*)[\x00-\x8f].*)\575*\576\x90.*\575$)| (?:^(.*)\x91.*\577[\x00-\x90].*$)| (?:^([\x00-\x90].*)\x91.*\578$)| (?:^((.*)[\x00-\x90].*)\579*\580\x91.*\579$)| (?:^(.*)\x92.*\581[\x00-\x91].*$)| (?:^([\x00-\x91].*)\x92.*\582$)| (?:^((.*)[\x00-\x91].*)\583*\584\x92.*\583$)| (?:^(.*)\x93.*\585[\x00-\x92].*$)| (?:^([\x00-\x92].*)\x93.*\586$)| (?:^((.*)[\x00-\x92].*)\587*\588\x93.*\587$)| (?:^(.*)\x94.*\589[\x00-\x93].*$)| (?:^([\x00-\x93].*)\x94.*\590$)| (?:^((.*)[\x00-\x93].*)\591*\592\x94.*\591$)| (?:^(.*)\x95.*\593[\x00-\x94].*$)| (?:^([\x00-\x94].*)\x95.*\594$)| (?:^((.*)[\x00-\x94].*)\595*\596\x95.*\595$)| (?:^(.*)\x96.*\597[\x00-\x95].*$)| (?:^([\x00-\x95].*)\x96.*\598$)| (?:^((.*)[\x00-\x95].*)\599*\600\x96.*\599$)| (?:^(.*)\x97.*\601[\x00-\x96].*$)| (?:^([\x00-\x96].*)\x97.*\602$)| (?:^((.*)[\x00-\x96].*)\603*\604\x97.*\603$)| (?:^(.*)\x98.*\605[\x00-\x97].*$)| (?:^([\x00-\x97].*)\x98.*\606$)| (?:^((.*)[\x00-\x97].*)\607*\608\x98.*\607$)| (?:^(.*)\x99.*\609[\x00-\x98].*$)| (?:^([\x00-\x98].*)\x99.*\610$)| (?:^((.*)[\x00-\x98].*)\611*\612\x99.*\611$)| (?:^(.*)\x9a.*\613[\x00-\x99].*$)| (?:^([\x00-\x99].*)\x9a.*\614$)| (?:^((.*)[\x00-\x99].*)\615*\616\x9a.*\615$)| (?:^(.*)\x9b.*\617[\x00-\x9a].*$)| (?:^([\x00-\x9a].*)\x9b.*\618$)| (?:^((.*)[\x00-\x9a].*)\619*\620\x9b.*\619$)| (?:^(.*)\x9c.*\621[\x00-\x9b].*$)| (?:^([\x00-\x9b].*)\x9c.*\622$)| (?:^((.*)[\x00-\x9b].*)\623*\624\x9c.*\623$)| (?:^(.*)\x9d.*\625[\x00-\x9c].*$)| (?:^([\x00-\x9c].*)\x9d.*\626$)| (?:^((.*)[\x00-\x9c].*)\627*\628\x9d.*\627$)| (?:^(.*)\x9e.*\629[\x00-\x9d].*$)| (?:^([\x00-\x9d].*)\x9e.*\630$)| (?:^((.*)[\x00-\x9d].*)\631*\632\x9e.*\631$)| (?:^(.*)\x9f.*\633[\x00-\x9e].*$)| (?:^([\x00-\x9e].*)\x9f.*\634$)| (?:^((.*)[\x00-\x9e].*)\635*\636\x9f.*\635$)| (?:^(.*)\xa0.*\637[\x00-\x9f].*$)| (?:^([\x00-\x9f].*)\xa0.*\638$)| (?:^((.*)[\x00-\x9f].*)\639*\640\xa0.*\639$)| (?:^(.*)\xa1.*\641[\x00-\xa0].*$)| (?:^([\x00-\xa0].*)\xa1.*\642$)| (?:^((.*)[\x00-\xa0].*)\643*\644\xa1.*\643$)| (?:^(.*)\xa2.*\645[\x00-\xa1].*$)| (?:^([\x00-\xa1].*)\xa2.*\646$)| (?:^((.*)[\x00-\xa1].*)\647*\648\xa2.*\647$)| (?:^(.*)\xa3.*\649[\x00-\xa2].*$)| (?:^([\x00-\xa2].*)\xa3.*\650$)| (?:^((.*)[\x00-\xa2].*)\651*\652\xa3.*\651$)| (?:^(.*)\xa4.*\653[\x00-\xa3].*$)| (?:^([\x00-\xa3].*)\xa4.*\654$)| (?:^((.*)[\x00-\xa3].*)\655*\656\xa4.*\655$)| (?:^(.*)\xa5.*\657[\x00-\xa4].*$)| (?:^([\x00-\xa4].*)\xa5.*\658$)| (?:^((.*)[\x00-\xa4].*)\659*\660\xa5.*\659$)| (?:^(.*)\xa6.*\661[\x00-\xa5].*$)| (?:^([\x00-\xa5].*)\xa6.*\662$)| (?:^((.*)[\x00-\xa5].*)\663*\664\xa6.*\663$)| (?:^(.*)\xa7.*\665[\x00-\xa6].*$)| (?:^([\x00-\xa6].*)\xa7.*\666$)| (?:^((.*)[\x00-\xa6].*)\667*\668\xa7.*\667$)| (?:^(.*)\xa8.*\669[\x00-\xa7].*$)| (?:^([\x00-\xa7].*)\xa8.*\670$)| (?:^((.*)[\x00-\xa7].*)\671*\672\xa8.*\671$)| (?:^(.*)\xa9.*\673[\x00-\xa8].*$)| (?:^([\x00-\xa8].*)\xa9.*\674$)| (?:^((.*)[\x00-\xa8].*)\675*\676\xa9.*\675$)| (?:^(.*)\xaa.*\677[\x00-\xa9].*$)| (?:^([\x00-\xa9].*)\xaa.*\678$)| (?:^((.*)[\x00-\xa9].*)\679*\680\xaa.*\679$)| (?:^(.*)\xab.*\681[\x00-\xaa].*$)| (?:^([\x00-\xaa].*)\xab.*\682$)| (?:^((.*)[\x00-\xaa].*)\683*\684\xab.*\683$)| (?:^(.*)\xac.*\685[\x00-\xab].*$)| (?:^([\x00-\xab].*)\xac.*\686$)| (?:^((.*)[\x00-\xab].*)\687*\688\xac.*\687$)| (?:^(.*)\xad.*\689[\x00-\xac].*$)| (?:^([\x00-\xac].*)\xad.*\690$)| (?:^((.*)[\x00-\xac].*)\691*\692\xad.*\691$)| (?:^(.*)\xae.*\693[\x00-\xad].*$)| (?:^([\x00-\xad].*)\xae.*\694$)| (?:^((.*)[\x00-\xad].*)\695*\696\xae.*\695$)| (?:^(.*)\xaf.*\697[\x00-\xae].*$)| (?:^([\x00-\xae].*)\xaf.*\698$)| (?:^((.*)[\x00-\xae].*)\699*\700\xaf.*\699$)| (?:^(.*)\xb0.*\701[\x00-\xaf].*$)| (?:^([\x00-\xaf].*)\xb0.*\702$)| (?:^((.*)[\x00-\xaf].*)\703*\704\xb0.*\703$)| (?:^(.*)\xb1.*\705[\x00-\xb0].*$)| (?:^([\x00-\xb0].*)\xb1.*\706$)| (?:^((.*)[\x00-\xb0].*)\707*\708\xb1.*\707$)| (?:^(.*)\xb2.*\709[\x00-\xb1].*$)| (?:^([\x00-\xb1].*)\xb2.*\710$)| (?:^((.*)[\x00-\xb1].*)\711*\712\xb2.*\711$)| (?:^(.*)\xb3.*\713[\x00-\xb2].*$)| (?:^([\x00-\xb2].*)\xb3.*\714$)| (?:^((.*)[\x00-\xb2].*)\715*\716\xb3.*\715$)| (?:^(.*)\xb4.*\717[\x00-\xb3].*$)| (?:^([\x00-\xb3].*)\xb4.*\718$)| (?:^((.*)[\x00-\xb3].*)\719*\720\xb4.*\719$)| (?:^(.*)\xb5.*\721[\x00-\xb4].*$)| (?:^([\x00-\xb4].*)\xb5.*\722$)| (?:^((.*)[\x00-\xb4].*)\723*\724\xb5.*\723$)| (?:^(.*)\xb6.*\725[\x00-\xb5].*$)| (?:^([\x00-\xb5].*)\xb6.*\726$)| (?:^((.*)[\x00-\xb5].*)\727*\728\xb6.*\727$)| (?:^(.*)\xb7.*\729[\x00-\xb6].*$)| (?:^([\x00-\xb6].*)\xb7.*\730$)| (?:^((.*)[\x00-\xb6].*)\731*\732\xb7.*\731$)| (?:^(.*)\xb8.*\733[\x00-\xb7].*$)| (?:^([\x00-\xb7].*)\xb8.*\734$)| (?:^((.*)[\x00-\xb7].*)\735*\736\xb8.*\735$)| (?:^(.*)\xb9.*\737[\x00-\xb8].*$)| (?:^([\x00-\xb8].*)\xb9.*\738$)| (?:^((.*)[\x00-\xb8].*)\739*\740\xb9.*\739$)| (?:^(.*)\xba.*\741[\x00-\xb9].*$)| (?:^([\x00-\xb9].*)\xba.*\742$)| (?:^((.*)[\x00-\xb9].*)\743*\744\xba.*\743$)| (?:^(.*)\xbb.*\745[\x00-\xba].*$)| (?:^([\x00-\xba].*)\xbb.*\746$)| (?:^((.*)[\x00-\xba].*)\747*\748\xbb.*\747$)| (?:^(.*)\xbc.*\749[\x00-\xbb].*$)| (?:^([\x00-\xbb].*)\xbc.*\750$)| (?:^((.*)[\x00-\xbb].*)\751*\752\xbc.*\751$)| (?:^(.*)\xbd.*\753[\x00-\xbc].*$)| (?:^([\x00-\xbc].*)\xbd.*\754$)| (?:^((.*)[\x00-\xbc].*)\755*\756\xbd.*\755$)| (?:^(.*)\xbe.*\757[\x00-\xbd].*$)| (?:^([\x00-\xbd].*)\xbe.*\758$)| (?:^((.*)[\x00-\xbd].*)\759*\760\xbe.*\759$)| (?:^(.*)\xbf.*\761[\x00-\xbe].*$)| (?:^([\x00-\xbe].*)\xbf.*\762$)| (?:^((.*)[\x00-\xbe].*)\763*\764\xbf.*\763$)| (?:^(.*)\xc0.*\765[\x00-\xbf].*$)| (?:^([\x00-\xbf].*)\xc0.*\766$)| (?:^((.*)[\x00-\xbf].*)\767*\768\xc0.*\767$)| (?:^(.*)\xc1.*\769[\x00-\xc0].*$)| (?:^([\x00-\xc0].*)\xc1.*\770$)| (?:^((.*)[\x00-\xc0].*)\771*\772\xc1.*\771$)| (?:^(.*)\xc2.*\773[\x00-\xc1].*$)| (?:^([\x00-\xc1].*)\xc2.*\774$)| (?:^((.*)[\x00-\xc1].*)\775*\776\xc2.*\775$)| (?:^(.*)\xc3.*\777[\x00-\xc2].*$)| (?:^([\x00-\xc2].*)\xc3.*\778$)| (?:^((.*)[\x00-\xc2].*)\779*\780\xc3.*\779$)| (?:^(.*)\xc4.*\781[\x00-\xc3].*$)| (?:^([\x00-\xc3].*)\xc4.*\782$)| (?:^((.*)[\x00-\xc3].*)\783*\784\xc4.*\783$)| (?:^(.*)\xc5.*\785[\x00-\xc4].*$)| (?:^([\x00-\xc4].*)\xc5.*\786$)| (?:^((.*)[\x00-\xc4].*)\787*\788\xc5.*\787$)| (?:^(.*)\xc6.*\789[\x00-\xc5].*$)| (?:^([\x00-\xc5].*)\xc6.*\790$)| (?:^((.*)[\x00-\xc5].*)\791*\792\xc6.*\791$)| (?:^(.*)\xc7.*\793[\x00-\xc6].*$)| (?:^([\x00-\xc6].*)\xc7.*\794$)| (?:^((.*)[\x00-\xc6].*)\795*\796\xc7.*\795$)| (?:^(.*)\xc8.*\797[\x00-\xc7].*$)| (?:^([\x00-\xc7].*)\xc8.*\798$)| (?:^((.*)[\x00-\xc7].*)\799*\800\xc8.*\799$)| (?:^(.*)\xc9.*\801[\x00-\xc8].*$)| (?:^([\x00-\xc8].*)\xc9.*\802$)| (?:^((.*)[\x00-\xc8].*)\803*\804\xc9.*\803$)| (?:^(.*)\xca.*\805[\x00-\xc9].*$)| (?:^([\x00-\xc9].*)\xca.*\806$)| (?:^((.*)[\x00-\xc9].*)\807*\808\xca.*\807$)| (?:^(.*)\xcb.*\809[\x00-\xca].*$)| (?:^([\x00-\xca].*)\xcb.*\810$)| (?:^((.*)[\x00-\xca].*)\811*\812\xcb.*\811$)| (?:^(.*)\xcc.*\813[\x00-\xcb].*$)| (?:^([\x00-\xcb].*)\xcc.*\814$)| (?:^((.*)[\x00-\xcb].*)\815*\816\xcc.*\815$)| (?:^(.*)\xcd.*\817[\x00-\xcc].*$)| (?:^([\x00-\xcc].*)\xcd.*\818$)| (?:^((.*)[\x00-\xcc].*)\819*\820\xcd.*\819$)| (?:^(.*)\xce.*\821[\x00-\xcd].*$)| (?:^([\x00-\xcd].*)\xce.*\822$)| (?:^((.*)[\x00-\xcd].*)\823*\824\xce.*\823$)| (?:^(.*)\xcf.*\825[\x00-\xce].*$)| (?:^([\x00-\xce].*)\xcf.*\826$)| (?:^((.*)[\x00-\xce].*)\827*\828\xcf.*\827$)| (?:^(.*)\xd0.*\829[\x00-\xcf].*$)| (?:^([\x00-\xcf].*)\xd0.*\830$)| (?:^((.*)[\x00-\xcf].*)\831*\832\xd0.*\831$)| (?:^(.*)\xd1.*\833[\x00-\xd0].*$)| (?:^([\x00-\xd0].*)\xd1.*\834$)| (?:^((.*)[\x00-\xd0].*)\835*\836\xd1.*\835$)| (?:^(.*)\xd2.*\837[\x00-\xd1].*$)| (?:^([\x00-\xd1].*)\xd2.*\838$)| (?:^((.*)[\x00-\xd1].*)\839*\840\xd2.*\839$)| (?:^(.*)\xd3.*\841[\x00-\xd2].*$)| (?:^([\x00-\xd2].*)\xd3.*\842$)| (?:^((.*)[\x00-\xd2].*)\843*\844\xd3.*\843$)| (?:^(.*)\xd4.*\845[\x00-\xd3].*$)| (?:^([\x00-\xd3].*)\xd4.*\846$)| (?:^((.*)[\x00-\xd3].*)\847*\848\xd4.*\847$)| (?:^(.*)\xd5.*\849[\x00-\xd4].*$)| (?:^([\x00-\xd4].*)\xd5.*\850$)| (?:^((.*)[\x00-\xd4].*)\851*\852\xd5.*\851$)| (?:^(.*)\xd6.*\853[\x00-\xd5].*$)| (?:^([\x00-\xd5].*)\xd6.*\854$)| (?:^((.*)[\x00-\xd5].*)\855*\856\xd6.*\855$)| (?:^(.*)\xd7.*\857[\x00-\xd6].*$)| (?:^([\x00-\xd6].*)\xd7.*\858$)| (?:^((.*)[\x00-\xd6].*)\859*\860\xd7.*\859$)| (?:^(.*)\xd8.*\861[\x00-\xd7].*$)| (?:^([\x00-\xd7].*)\xd8.*\862$)| (?:^((.*)[\x00-\xd7].*)\863*\864\xd8.*\863$)| (?:^(.*)\xd9.*\865[\x00-\xd8].*$)| (?:^([\x00-\xd8].*)\xd9.*\866$)| (?:^((.*)[\x00-\xd8].*)\867*\868\xd9.*\867$)| (?:^(.*)\xda.*\869[\x00-\xd9].*$)| (?:^([\x00-\xd9].*)\xda.*\870$)| (?:^((.*)[\x00-\xd9].*)\871*\872\xda.*\871$)| (?:^(.*)\xdb.*\873[\x00-\xda].*$)| (?:^([\x00-\xda].*)\xdb.*\874$)| (?:^((.*)[\x00-\xda].*)\875*\876\xdb.*\875$)| (?:^(.*)\xdc.*\877[\x00-\xdb].*$)| (?:^([\x00-\xdb].*)\xdc.*\878$)| (?:^((.*)[\x00-\xdb].*)\879*\880\xdc.*\879$)| (?:^(.*)\xdd.*\881[\x00-\xdc].*$)| (?:^([\x00-\xdc].*)\xdd.*\882$)| (?:^((.*)[\x00-\xdc].*)\883*\884\xdd.*\883$)| (?:^(.*)\xde.*\885[\x00-\xdd].*$)| (?:^([\x00-\xdd].*)\xde.*\886$)| (?:^((.*)[\x00-\xdd].*)\887*\888\xde.*\887$)| (?:^(.*)\xdf.*\889[\x00-\xde].*$)| (?:^([\x00-\xde].*)\xdf.*\890$)| (?:^((.*)[\x00-\xde].*)\891*\892\xdf.*\891$)| (?:^(.*)\xe0.*\893[\x00-\xdf].*$)| (?:^([\x00-\xdf].*)\xe0.*\894$)| (?:^((.*)[\x00-\xdf].*)\895*\896\xe0.*\895$)| (?:^(.*)\xe1.*\897[\x00-\xe0].*$)| (?:^([\x00-\xe0].*)\xe1.*\898$)| (?:^((.*)[\x00-\xe0].*)\899*\900\xe1.*\899$)| (?:^(.*)\xe2.*\901[\x00-\xe1].*$)| (?:^([\x00-\xe1].*)\xe2.*\902$)| (?:^((.*)[\x00-\xe1].*)\903*\904\xe2.*\903$)| (?:^(.*)\xe3.*\905[\x00-\xe2].*$)| (?:^([\x00-\xe2].*)\xe3.*\906$)| (?:^((.*)[\x00-\xe2].*)\907*\908\xe3.*\907$)| (?:^(.*)\xe4.*\909[\x00-\xe3].*$)| (?:^([\x00-\xe3].*)\xe4.*\910$)| (?:^((.*)[\x00-\xe3].*)\911*\912\xe4.*\911$)| (?:^(.*)\xe5.*\913[\x00-\xe4].*$)| (?:^([\x00-\xe4].*)\xe5.*\914$)| (?:^((.*)[\x00-\xe4].*)\915*\916\xe5.*\915$)| (?:^(.*)\xe6.*\917[\x00-\xe5].*$)| (?:^([\x00-\xe5].*)\xe6.*\918$)| (?:^((.*)[\x00-\xe5].*)\919*\920\xe6.*\919$)| (?:^(.*)\xe7.*\921[\x00-\xe6].*$)| (?:^([\x00-\xe6].*)\xe7.*\922$)| (?:^((.*)[\x00-\xe6].*)\923*\924\xe7.*\923$)| (?:^(.*)\xe8.*\925[\x00-\xe7].*$)| (?:^([\x00-\xe7].*)\xe8.*\926$)| (?:^((.*)[\x00-\xe7].*)\927*\928\xe8.*\927$)| (?:^(.*)\xe9.*\929[\x00-\xe8].*$)| (?:^([\x00-\xe8].*)\xe9.*\930$)| (?:^((.*)[\x00-\xe8].*)\931*\932\xe9.*\931$)| (?:^(.*)\xea.*\933[\x00-\xe9].*$)| (?:^([\x00-\xe9].*)\xea.*\934$)| (?:^((.*)[\x00-\xe9].*)\935*\936\xea.*\935$)| (?:^(.*)\xeb.*\937[\x00-\xea].*$)| (?:^([\x00-\xea].*)\xeb.*\938$)| (?:^((.*)[\x00-\xea].*)\939*\940\xeb.*\939$)| (?:^(.*)\xec.*\941[\x00-\xeb].*$)| (?:^([\x00-\xeb].*)\xec.*\942$)| (?:^((.*)[\x00-\xeb].*)\943*\944\xec.*\943$)| (?:^(.*)\xed.*\945[\x00-\xec].*$)| (?:^([\x00-\xec].*)\xed.*\946$)| (?:^((.*)[\x00-\xec].*)\947*\948\xed.*\947$)| (?:^(.*)\xee.*\949[\x00-\xed].*$)| (?:^([\x00-\xed].*)\xee.*\950$)| (?:^((.*)[\x00-\xed].*)\951*\952\xee.*\951$)| (?:^(.*)\xef.*\953[\x00-\xee].*$)| (?:^([\x00-\xee].*)\xef.*\954$)| (?:^((.*)[\x00-\xee].*)\955*\956\xef.*\955$)| (?:^(.*)\xf0.*\957[\x00-\xef].*$)| (?:^([\x00-\xef].*)\xf0.*\958$)| (?:^((.*)[\x00-\xef].*)\959*\960\xf0.*\959$)| (?:^(.*)\xf1.*\961[\x00-\xf0].*$)| (?:^([\x00-\xf0].*)\xf1.*\962$)| (?:^((.*)[\x00-\xf0].*)\963*\964\xf1.*\963$)| (?:^(.*)\xf2.*\965[\x00-\xf1].*$)| (?:^([\x00-\xf1].*)\xf2.*\966$)| (?:^((.*)[\x00-\xf1].*)\967*\968\xf2.*\967$)| (?:^(.*)\xf3.*\969[\x00-\xf2].*$)| (?:^([\x00-\xf2].*)\xf3.*\970$)| (?:^((.*)[\x00-\xf2].*)\971*\972\xf3.*\971$)| (?:^(.*)\xf4.*\973[\x00-\xf3].*$)| (?:^([\x00-\xf3].*)\xf4.*\974$)| (?:^((.*)[\x00-\xf3].*)\975*\976\xf4.*\975$)| (?:^(.*)\xf5.*\977[\x00-\xf4].*$)| (?:^([\x00-\xf4].*)\xf5.*\978$)| (?:^((.*)[\x00-\xf4].*)\979*\980\xf5.*\979$)| (?:^(.*)\xf6.*\981[\x00-\xf5].*$)| (?:^([\x00-\xf5].*)\xf6.*\982$)| (?:^((.*)[\x00-\xf5].*)\983*\984\xf6.*\983$)| (?:^(.*)\xf7.*\985[\x00-\xf6].*$)| (?:^([\x00-\xf6].*)\xf7.*\986$)| (?:^((.*)[\x00-\xf6].*)\987*\988\xf7.*\987$)| (?:^(.*)\xf8.*\989[\x00-\xf7].*$)| (?:^([\x00-\xf7].*)\xf8.*\990$)| (?:^((.*)[\x00-\xf7].*)\991*\992\xf8.*\991$)| (?:^(.*)\xf9.*\993[\x00-\xf8].*$)| (?:^([\x00-\xf8].*)\xf9.*\994$)| (?:^((.*)[\x00-\xf8].*)\995*\996\xf9.*\995$)| (?:^(.*)\xfa.*\997[\x00-\xf9].*$)| (?:^([\x00-\xf9].*)\xfa.*\998$)| (?:^((.*)[\x00-\xf9].*)\999*\1000\xfa.*\999$)| (?:^(.*)\xfb.*\1001[\x00-\xfa].*$)| (?:^([\x00-\xfa].*)\xfb.*\1002$)| (?:^((.*)[\x00-\xfa].*)\1003*\1004\xfb.*\1003$)| (?:^(.*)\xfc.*\1005[\x00-\xfb].*$)| (?:^([\x00-\xfb].*)\xfc.*\1006$)| (?:^((.*)[\x00-\xfb].*)\1007*\1008\xfc.*\1007$)| (?:^(.*)\xfd.*\1009[\x00-\xfc].*$)| (?:^([\x00-\xfc].*)\xfd.*\1010$)| (?:^((.*)[\x00-\xfc].*)\1011*\1012\xfd.*\1011$)| (?:^(.*)\xfe.*\1013[\x00-\xfd].*$)| (?:^([\x00-\xfd].*)\xfe.*\1014$)| (?:^((.*)[\x00-\xfd].*)\1015*\1016\xfe.*\1015$)| (?:^(.*)\xff.*\1017[\x00-\xfe].*$)| (?:^([\x00-\xfe].*)\xff.*\1018$)| (?:^((.*)[\x00-\xfe].*)\1019*\1020\xff.*\1019$)/sx Abigail