$brackets_pattern = qr{ # recursive pattern to search brackets like [mmm[ hh[f]]ll]
\[
(?:
(?>[^\[\]]+ ) # non-brackets
|
(??{$brackets_pattern}) #new pattern for inside brackets
)*
\]
}x;
my $pat = qr/(?-xism:(?-xism:[ab?x][DLSRX?]Glc(?:[pfa?]|-ol|)N\(1\-4\))(?x-ism:\[(?:(?>[^\[\]]+)|(??{$brackets_pattern}))*\])*(?x-ism:\[(?:(?>[^\[\]]+)|(??{$brackets_pattern}))*\])*\[(?x-ism:(?:(?>[^\[\]]+?)|(??{$brackets_pattern}))*)(?:t\)|(?[^\[\]]+)|(??{$brackets_pattern}))*\])*(?-xism:[ab?x][DLSRX?]Glcp\(1\-6\))\](?x-ism:\[(?:(?>[^\[\]]+)|(??{$brackets_pattern}))*\])*(?-xism:[ab?x][DLSRX?]GalpN(?=\(|$)))/;
####
-6)[xR3HOBut(1-3)]aDGlcpN(1-4)[aDGlcp(1-6),Ac(1-2)]aDGalpN(1-3)[Ac(1-2)]bDGalpN(1-2)aDGlcp(1-P-
##
##
([^e]|e([^s]|s([^\.]|\.([^c]|c([^o]|o([^m]|m([^p]|p([^\.]|\.([^o]|o([^s]|s([^\.]|\.([^l]|l([^i]|i([^n]|n([^u]|u[^x])))))))))))))))
##
##
#!/usr/bin/perl -l
"AB~ACFI~ADGJ~AE~BCDE~BFHJ~BI~EGHI~EJ~IJ" =~ /([^~])[^~]*([^~]).*~[^~]*([^~])[^~]*([^~])(?{local$z=$1 and local$y=$2 and local$x=$1 eq$3?$4:$1 eq$4?$3:($z=$2)&&($y=$1)&&$2 eq$3?$4:$2 eq$4?$3:0}).*~[^~]*((??{$y})[^~]*(??{$x})|(??{$x})[^~]*(??{$y}))(?{$x{join" - ",sort$x,$y,$z}++})(?!)/;
print for sort(keys %x), keys(%x) . " triangles found";
##
##
m<
(?:http://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.
)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)
){3}))(?::(?:\d+))?)(?:/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F
\d]{2}))|[;:@&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{
2}))|[;:@&=])*))*)(?:\?(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{
2}))|[;:@&=])*))?)?)|(?:ftp://(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?
:%[a-fA-F\d]{2}))|[;?&=])*)(?::(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-
fA-F\d]{2}))|[;?&=])*))?@)?(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-
)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?
:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?))(?:/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!
*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'()
,]|(?:%[a-fA-F\d]{2}))|[?:@&=])*))*)(?:;type=[AIDaid])?)?)|(?:news:(?:
(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;/?:&=])+@(?:(?:(
?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[
a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3})))|(?:[a-zA-Z](
?:[a-zA-Z\d]|[_.+-])*)|\*))|(?:nntp://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[
a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d
])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?)/(?:[a-zA-Z](?:[a-zA-Z
\d]|[_.+-])*)(?:/(?:\d+))?)|(?:telnet://(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+
!*'(),]|(?:%[a-fA-F\d]{2}))|[;?&=])*)(?::(?:(?:(?:[a-zA-Z\d$\-_.+!*'()
,]|(?:%[a-fA-F\d]{2}))|[;?&=])*))?@)?(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a
-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d]
)?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?))/?)|(?:gopher://(?:(?:
(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:
(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+
))?)(?:/(?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))(?:(?:(?:[
a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))*)(?:%09(?:(?:(?:[a-zA
-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;:@&=])*)(?:%09(?:(?:[a-zA-Z\d$
\-_.+!*'(),;/?:@&=]|(?:%[a-fA-F\d]{2}))*))?)?)?)?)|(?:wais://(?:(?:(?:
(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:
[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?
)/(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)(?:(?:/(?:(?:[a-zA
-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)/(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(
?:%[a-fA-F\d]{2}))*))|\?(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]
{2}))|[;:@&=])*))?)|(?:mailto:(?:(?:[a-zA-Z\d$\-_.+!*'(),;/?:@&=]|(?:%
[a-fA-F\d]{2}))+))|(?:file://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]
|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:
(?:\d+)(?:\.(?:\d+)){3}))|localhost)?/(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'()
,]|(?:%[a-fA-F\d]{2}))|[?:@&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(
?:%[a-fA-F\d]{2}))|[?:@&=])*))*))|(?:prospero://(?:(?:(?:(?:(?:[a-zA-Z
\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)
*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?)/(?:(?:(?:(?
:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*)(?:/(?:(?:(?:[a-
zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&=])*))*)(?:(?:;(?:(?:(?:[
a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&])*)=(?:(?:(?:[a-zA-Z\d
$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[?:@&])*)))*)|(?:ldap://(?:(?:(?:(?:
(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?:
[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))?
))?/(?:(?:(?:(?:(?:(?:(?:[a-zA-Z\d]|%(?:3\d|[46][a-fA-F\d]|[57][Aa\d])
)|(?:%20))+|(?:OID|oid)\.(?:(?:\d+)(?:\.(?:\d+))*))(?:(?:%0[Aa])?(?:%2
0)*)=(?:(?:%0[Aa])?(?:%20)*))?(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F
\d]{2}))*))(?:(?:(?:%0[Aa])?(?:%20)*)\+(?:(?:%0[Aa])?(?:%20)*)(?:(?:(?
:(?:(?:[a-zA-Z\d]|%(?:3\d|[46][a-fA-F\d]|[57][Aa\d]))|(?:%20))+|(?:OID
|oid)\.(?:(?:\d+)(?:\.(?:\d+))*))(?:(?:%0[Aa])?(?:%20)*)=(?:(?:%0[Aa])
?(?:%20)*))?(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)))*)(?:(
?:(?:(?:%0[Aa])?(?:%20)*)(?:[;,])(?:(?:%0[Aa])?(?:%20)*))(?:(?:(?:(?:(
?:(?:[a-zA-Z\d]|%(?:3\d|[46][a-fA-F\d]|[57][Aa\d]))|(?:%20))+|(?:OID|o
id)\.(?:(?:\d+)(?:\.(?:\d+))*))(?:(?:%0[Aa])?(?:%20)*)=(?:(?:%0[Aa])?(
?:%20)*))?(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*))(?:(?:(?:
%0[Aa])?(?:%20)*)\+(?:(?:%0[Aa])?(?:%20)*)(?:(?:(?:(?:(?:[a-zA-Z\d]|%(
?:3\d|[46][a-fA-F\d]|[57][Aa\d]))|(?:%20))+|(?:OID|oid)\.(?:(?:\d+)(?:
\.(?:\d+))*))(?:(?:%0[Aa])?(?:%20)*)=(?:(?:%0[Aa])?(?:%20)*))?(?:(?:[a
-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))*)))*))*(?:(?:(?:%0[Aa])?(?:%2
0)*)(?:[;,])(?:(?:%0[Aa])?(?:%20)*))?)(?:\?(?:(?:(?:(?:[a-zA-Z\d$\-_.+
!*'(),]|(?:%[a-fA-F\d]{2}))+)(?:,(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-f
A-F\d]{2}))+))*)?)(?:\?(?:base|one|sub)(?:\?(?:((?:[a-zA-Z\d$\-_.+!*'(
),;/?:@&=]|(?:%[a-fA-F\d]{2}))+)))?)?)?)|(?:(?:z39\.50[rs])://(?:(?:(?
:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?)\.)*(?:[a-zA-Z](?:(?
:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:\d+)){3}))(?::(?:\d+))
?)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+)(?:\+(?:(?:
[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+))*(?:\?(?:(?:[a-zA-Z\d$\-_
.+!*'(),]|(?:%[a-fA-F\d]{2}))+))?)?(?:;esn=(?:(?:[a-zA-Z\d$\-_.+!*'(),
]|(?:%[a-fA-F\d]{2}))+))?(?:;rs=(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA
-F\d]{2}))+)(?:\+(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))+))*)
?))|(?:cid:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?:@&=
])*))|(?:mid:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?:@
&=])*)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[;?:@&=]
)*))?)|(?:vemmi://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z
\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\
.(?:\d+)){3}))(?::(?:\d+))?)(?:/(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a
-fA-F\d]{2}))|[/?:@&=])*)(?:(?:;(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a
-fA-F\d]{2}))|[/?:@&])*)=(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d
]{2}))|[/?:@&])*))*))?)|(?:imap://(?:(?:(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+
!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~])+)(?:(?:;[Aa][Uu][Tt][Hh]=(?:\*|(?:(
?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~])+))))?)|(?:(?:;[
Aa][Uu][Tt][Hh]=(?:\*|(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2
}))|[&=~])+)))(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[
&=~])+))?))@)?(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])
?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:\.(?:
\d+)){3}))(?::(?:\d+))?))/(?:(?:(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:
%[a-fA-F\d]{2}))|[&=~:@/])+)?;[Tt][Yy][Pp][Ee]=(?:[Ll](?:[Ii][Ss][Tt]|
[Ss][Uu][Bb])))|(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))
|[&=~:@/])+)(?:\?(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[
&=~:@/])+))?(?:(?:;[Uu][Ii][Dd][Vv][Aa][Ll][Ii][Dd][Ii][Tt][Yy]=(?:[1-
9]\d*)))?)|(?:(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~
:@/])+)(?:(?:;[Uu][Ii][Dd][Vv][Aa][Ll][Ii][Dd][Ii][Tt][Yy]=(?:[1-9]\d*
)))?(?:/;[Uu][Ii][Dd]=(?:[1-9]\d*))(?:(?:/;[Ss][Ee][Cc][Tt][Ii][Oo][Nn
]=(?:(?:(?:[a-zA-Z\d$\-_.+!*'(),]|(?:%[a-fA-F\d]{2}))|[&=~:@/])+)))?))
)?)|(?:nfs:(?:(?://(?:(?:(?:(?:(?:[a-zA-Z\d](?:(?:[a-zA-Z\d]|-)*[a-zA-
Z\d])?)\.)*(?:[a-zA-Z](?:(?:[a-zA-Z\d]|-)*[a-zA-Z\d])?))|(?:(?:\d+)(?:
\.(?:\d+)){3}))(?::(?:\d+))?)(?:(?:/(?:(?:(?:(?:(?:[a-zA-Z\d\$\-_.!~*'
(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*)(?:/(?:(?:(?:[a-zA-Z\d\$\-_.!~*'(),
])|(?:%[a-fA-F\d]{2})|[:@&=+])*))*)?)))?)|(?:/(?:(?:(?:(?:(?:[a-zA-Z\d
\$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*)(?:/(?:(?:(?:[a-zA-Z\d\$\
-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*))*)?))|(?:(?:(?:(?:(?:[a-zA-
Z\d\$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*)(?:/(?:(?:(?:[a-zA-Z\d
\$\-_.!~*'(),])|(?:%[a-fA-F\d]{2})|[:@&=+])*))*)?)))
>x;
##
##
sub valid {
my $spot = substr($grid_h, $_[0]*$size+$_[1], 1);
return 1 if $spot eq $_[2];
return if $spot ne '_';
return if index(substr($grid_h, $_[0] * $size, $size), $_[2]) >= 0;
return if index(substr($grid_v, $_[1] * $size, $size), $_[2]) >= 0;
return 1;
}
$re = qr/
(?:
(?(?{ !valid(0, 0, '1') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 0, 1, '1'); local $grid_v = $grid_v; substr($grid_v, 0, 1, '1'); }) |
(?(?{ !valid(0, 0, '2') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 0, 1, '2'); local $grid_v = $grid_v; substr($grid_v, 0, 1, '2'); }) |
(?(?{ !valid(0, 0, '3') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 0, 1, '3'); local $grid_v = $grid_v; substr($grid_v, 0, 1, '3'); }) |
(?(?{ !valid(0, 0, '4') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 0, 1, '4'); local $grid_v = $grid_v; substr($grid_v, 0, 1, '4'); }) |
(?(?{ !valid(0, 0, '5') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 0, 1, '5'); local $grid_v = $grid_v; substr($grid_v, 0, 1, '5'); }) |
(?(?{ !valid(0, 0, '6') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 0, 1, '6'); local $grid_v = $grid_v; substr($grid_v, 0, 1, '6'); }) |
(?(?{ !valid(0, 0, '7') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 0, 1, '7'); local $grid_v = $grid_v; substr($grid_v, 0, 1, '7'); }) |
(?(?{ !valid(0, 0, '8') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 0, 1, '8'); local $grid_v = $grid_v; substr($grid_v, 0, 1, '8'); }) |
(?(?{ !valid(0, 0, '9') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 0, 1, '9'); local $grid_v = $grid_v; substr($grid_v, 0, 1, '9'); })
)
(?:
(?(?{ !valid(0, 1, '1') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 1, 1, '1'); local $grid_v = $grid_v; substr($grid_v, 9, 1, '1'); }) |
(?(?{ !valid(0, 1, '2') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 1, 1, '2'); local $grid_v = $grid_v; substr($grid_v, 9, 1, '2'); }) |
(?(?{ !valid(0, 1, '3') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 1, 1, '3'); local $grid_v = $grid_v; substr($grid_v, 9, 1, '3'); }) |
(?(?{ !valid(0, 1, '4') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 1, 1, '4'); local $grid_v = $grid_v; substr($grid_v, 9, 1, '4'); }) |
(?(?{ !valid(0, 1, '5') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 1, 1, '5'); local $grid_v = $grid_v; substr($grid_v, 9, 1, '5'); }) |
(?(?{ !valid(0, 1, '6') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 1, 1, '6'); local $grid_v = $grid_v; substr($grid_v, 9, 1, '6'); }) |
(?(?{ !valid(0, 1, '7') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 1, 1, '7'); local $grid_v = $grid_v; substr($grid_v, 9, 1, '7'); }) |
(?(?{ !valid(0, 1, '8') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 1, 1, '8'); local $grid_v = $grid_v; substr($grid_v, 9, 1, '8'); }) |
(?(?{ !valid(0, 1, '9') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 1, 1, '9'); local $grid_v = $grid_v; substr($grid_v, 9, 1, '9'); })
)
(?:
(?(?{ !valid(0, 2, '1') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 2, 1, '1'); local $grid_v = $grid_v; substr($grid_v, 18, 1, '1'); }) |
(?(?{ !valid(0, 2, '2') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 2, 1, '2'); local $grid_v = $grid_v; substr($grid_v, 18, 1, '2'); }) |
(?(?{ !valid(0, 2, '3') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 2, 1, '3'); local $grid_v = $grid_v; substr($grid_v, 18, 1, '3'); }) |
(?(?{ !valid(0, 2, '4') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 2, 1, '4'); local $grid_v = $grid_v; substr($grid_v, 18, 1, '4'); }) |
(?(?{ !valid(0, 2, '5') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 2, 1, '5'); local $grid_v = $grid_v; substr($grid_v, 18, 1, '5'); }) |
(?(?{ !valid(0, 2, '6') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 2, 1, '6'); local $grid_v = $grid_v; substr($grid_v, 18, 1, '6'); }) |
(?(?{ !valid(0, 2, '7') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 2, 1, '7'); local $grid_v = $grid_v; substr($grid_v, 18, 1, '7'); }) |
(?(?{ !valid(0, 2, '8') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 2, 1, '8'); local $grid_v = $grid_v; substr($grid_v, 18, 1, '8'); }) |
(?(?{ !valid(0, 2, '9') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 2, 1, '9'); local $grid_v = $grid_v; substr($grid_v, 18, 1, '9'); })
)
.
.
.
(?:
(?(?{ !valid(8, 6, '1') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 78, 1, '1'); local $grid_v = $grid_v; substr($grid_v, 62, 1, '1'); }) |
(?(?{ !valid(8, 6, '2') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 78, 1, '2'); local $grid_v = $grid_v; substr($grid_v, 62, 1, '2'); }) |
(?(?{ !valid(8, 6, '3') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 78, 1, '3'); local $grid_v = $grid_v; substr($grid_v, 62, 1, '3'); }) |
(?(?{ !valid(8, 6, '4') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 78, 1, '4'); local $grid_v = $grid_v; substr($grid_v, 62, 1, '4'); }) |
(?(?{ !valid(8, 6, '5') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 78, 1, '5'); local $grid_v = $grid_v; substr($grid_v, 62, 1, '5'); }) |
(?(?{ !valid(8, 6, '6') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 78, 1, '6'); local $grid_v = $grid_v; substr($grid_v, 62, 1, '6'); }) |
(?(?{ !valid(8, 6, '7') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 78, 1, '7'); local $grid_v = $grid_v; substr($grid_v, 62, 1, '7'); }) |
(?(?{ !valid(8, 6, '8') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 78, 1, '8'); local $grid_v = $grid_v; substr($grid_v, 62, 1, '8'); }) |
(?(?{ !valid(8, 6, '9') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 78, 1, '9'); local $grid_v = $grid_v; substr($grid_v, 62, 1, '9'); })
)
(?:
(?(?{ !valid(8, 7, '1') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 79, 1, '1'); local $grid_v = $grid_v; substr($grid_v, 71, 1, '1'); }) |
(?(?{ !valid(8, 7, '2') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 79, 1, '2'); local $grid_v = $grid_v; substr($grid_v, 71, 1, '2'); }) |
(?(?{ !valid(8, 7, '3') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 79, 1, '3'); local $grid_v = $grid_v; substr($grid_v, 71, 1, '3'); }) |
(?(?{ !valid(8, 7, '4') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 79, 1, '4'); local $grid_v = $grid_v; substr($grid_v, 71, 1, '4'); }) |
(?(?{ !valid(8, 7, '5') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 79, 1, '5'); local $grid_v = $grid_v; substr($grid_v, 71, 1, '5'); }) |
(?(?{ !valid(8, 7, '6') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 79, 1, '6'); local $grid_v = $grid_v; substr($grid_v, 71, 1, '6'); }) |
(?(?{ !valid(8, 7, '7') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 79, 1, '7'); local $grid_v = $grid_v; substr($grid_v, 71, 1, '7'); }) |
(?(?{ !valid(8, 7, '8') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 79, 1, '8'); local $grid_v = $grid_v; substr($grid_v, 71, 1, '8'); }) |
(?(?{ !valid(8, 7, '9') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 79, 1, '9'); local $grid_v = $grid_v; substr($grid_v, 71, 1, '9'); })
)
(?:
(?(?{ !valid(8, 8, '1') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 80, 1, '1'); local $grid_v = $grid_v; substr($grid_v, 80, 1, '1'); }) |
(?(?{ !valid(8, 8, '2') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 80, 1, '2'); local $grid_v = $grid_v; substr($grid_v, 80, 1, '2'); }) |
(?(?{ !valid(8, 8, '3') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 80, 1, '3'); local $grid_v = $grid_v; substr($grid_v, 80, 1, '3'); }) |
(?(?{ !valid(8, 8, '4') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 80, 1, '4'); local $grid_v = $grid_v; substr($grid_v, 80, 1, '4'); }) |
(?(?{ !valid(8, 8, '5') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 80, 1, '5'); local $grid_v = $grid_v; substr($grid_v, 80, 1, '5'); }) |
(?(?{ !valid(8, 8, '6') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 80, 1, '6'); local $grid_v = $grid_v; substr($grid_v, 80, 1, '6'); }) |
(?(?{ !valid(8, 8, '7') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 80, 1, '7'); local $grid_v = $grid_v; substr($grid_v, 80, 1, '7'); }) |
(?(?{ !valid(8, 8, '8') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 80, 1, '8'); local $grid_v = $grid_v; substr($grid_v, 80, 1, '8'); }) |
(?(?{ !valid(8, 8, '9') })x)(?{ local $grid_h = $grid_h; substr($grid_h, 80, 1, '9'); local $grid_v = $grid_v; substr($grid_v, 80, 1, '9'); })
)
(?{ $match_grid = $grid_h })
/x;