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

Reply via email to