Prefix{u,v}2={w,x}:b:1
Prefix{u,v}2={w,x}:{y,z}:1
Prefix{u,v}2={w,x}:b:2
Prefix{u,v}2={w,x}:{y,z}:2
####
c:\@Work\Perl\monks\NorthernFox>perl -wMstrict -MData::Dump -le
"my @proto_globules = (
'Prefix{u,v}2={w,x}:b,{y,z}:1,2',
);
;;
my $rx_comma_in_curlies = qr{ { .*? , .*? } }xms;
;;
my $rx_globmeta = qr{ [\[\]{}*?~] }xms;
;;
my %globize = ('=' => '={', ':' => '}:{', '' => '}');
;;
for my $globule (@proto_globules) {
print qq{A: '$globule'};
$globule =~ s{ ($rx_comma_in_curlies) }
{ (my $r = $1) =~ s{,}{\\,}xmsg; $r; }xmsge;
$globule =~ s{ (?= $rx_globmeta) }{\\}xmsg;
print qq{B: '$globule'};
$globule =~ s{ ([=:] | \z) }
{ print qq{S: '$1'}; $globize{$1}; }xmsge;
print qq{C: '$globule'};
my @globs = glob $globule;
dd 'DD:', \@globs; print ''; next;
}
"
A: 'Prefix{u,v}2={w,x}:b,{y,z}:1,2'
B: 'Prefix\{u\,v\}2=\{w\,x\}:b,\{y\,z\}:1,2'
S: '='
S: ':'
S: ':'
S: ''
C: 'Prefix\{u\,v\}2={\{w\,x\}}:{b,\{y\,z\}}:{1,2}'
(
"DD:",
[
"Prefix{u\\,v}2={w\\:b:1",
"Prefix{u\\,v}2={w\\:b:2",
"Prefix{u\\,v}2={w\\:{y\\:1",
"Prefix{u\\,v}2={w\\:{y\\:2",
"Prefix{u\\,v}2={w\\:z}:1",
"Prefix{u\\,v}2={w\\:z}:2",
"Prefix{u\\,v}2=x}:b:1",
"Prefix{u\\,v}2=x}:b:2",
"Prefix{u\\,v}2=x}:{y\\:1",
"Prefix{u\\,v}2=x}:{y\\:2",
"Prefix{u\\,v}2=x}:z}:1",
"Prefix{u\\,v}2=x}:z}:2",
],
)
##
##
still active! -------+------------+
| |
v v
C: 'Prefix\{u\,v\}2={\{w\,x\}}:{b,\{y\,z\}}:{1,2}'
^ ^ ^ ^
| | | |
in added curlies --+--------+-+----------+