mb
view release on metacpan or search on metacpan
# mb::split --> mb::_split
# split --> mb::_split
elsif (/\G (?: CORE:: | mb:: | $old_package )? ( split ) \b /xmsgc) {
$parsed .= "mb::_split";
# parse \s and '('
while (1) {
if (/\G ( \s+ ) /xmsgc) {
$parsed .= $1;
}
elsif (/\G ( \( ) /xmsgc) {
$parsed .= $1;
}
elsif (/\G ( \# .* \n ) /xmgc) {
$parsed .= $1;
last;
}
else {
last;
}
}
my $regexp = '';
# split /^/ --> mb::_split qr/^/m
# split /.../ --> mb::_split qr/.../
if (m{\G ( [/] ) }xmsgc) {
$parsed .= "qr";
$regexp = parse_re_endswith('m',$1); # split /.../
my($modifier_i, $modifier_not_cegir, $modifier_cegr) = parse_re_modifier();
# P.794 29.2.161. split
# in Chapter 29: Functions
# of ISBN 0-596-00027-8 Programming Perl Third Edition.
# P.951 split
# in Chapter 27: Functions
# of ISBN 978-0-596-00492-7 Programming Perl 4th Edition.
# said "The //m modifier is assumed when you split on the pattern /^/",
# but perl5.008 is not so. Therefore, this software adds //m.
# (and so on)
if ($modifier_not_cegir !~ /m/xms) {
$modifier_not_cegir .= 'm';
}
# /xx modifier
if (($modifier_not_cegir =~ tr/x//) >= 2) {
$regexp = mb::_ignore_space($regexp);
}
# /i modifier
if ($modifier_i) {
$parsed .= sprintf('{@{[mb::_ignorecase(qr%s%s)]}}%s', $regexp, $modifier_not_cegir, $modifier_cegr);
}
else {
$parsed .= sprintf('{@{[' . 'qr%s%s ]}}%s', $regexp, $modifier_not_cegir, $modifier_cegr);
}
}
# split m/^/ --> mb::_split qr/^/m
# split m/.../ --> mb::_split qr/.../
elsif (/\G ( m | qr ) \b /xmsgc) {
$parsed .= "qr";
if (/\G ( [#] ) /xmsgc) { $regexp = parse_re_endswith('m',$1); } # split qr#...#
elsif (/\G ( ['] ) /xmsgc) { $regexp = parse_re_as_q_endswith('m',$1); } # split qr'...'
elsif (/\G ( [\(\{\[\<] ) /xmsgc) { $regexp = parse_re_balanced('m',$1); } # split qr{...}
elsif (m{\G( [/] ) }xmsgc) { $regexp = parse_re_endswith('m',$1); } # split qr/.../
elsif (/\G ( [:\@] ) /xmsgc) { $regexp = ('`' . quotee_of(parse_re_endswith('m',$1)) . '`'); } # split qr@...@
elsif (/\G ( [\S] ) /xmsgc) { $regexp = parse_re_endswith('m',$1); } # split qr?...?
elsif (/\G ( \s+ ) /xmsgc) { $parsed .= $1; $regexp = $1; # split qr SPACE ...
while (/\G ( \s+ | [#] [^\n]* ) /xmsgc) {
$parsed .= $1;
}
if (/\G ( [A-Za-z_0-9] ) /xmsgc) { $regexp .= parse_re_endswith('m',$1); } # split qr SPACE A...A
elsif (/\G ( ['] ) /xmsgc) { $regexp .= parse_re_as_q_endswith('m',$1); } # split qr SPACE '...'
elsif (/\G ( [\(\{\[\<] ) /xmsgc) { $regexp .= parse_re_balanced('m',$1); } # split qr SPACE {...}
elsif (m{\G( [/] ) }xmsgc) { $regexp .= parse_re_endswith('m',$1); } # split qr SPACE /.../
elsif (/\G ( [:\@] ) /xmsgc) { $regexp .= ('`' . quotee_of(parse_re_endswith('m',$1)) . '`'); } # split qr SPACE @...@
elsif (/\G ( [\S] ) /xmsgc) { $regexp .= parse_re_endswith('m',$1); } # split qr SPACE ?...?
else { die "$0(@{[__LINE__]}): $ARGV[0] has not closed:\n", $parsed; }
}
else { die "$0(@{[__LINE__]}): $ARGV[0] has not closed:\n", $parsed; }
my($modifier_i, $modifier_not_cegir, $modifier_cegr) = parse_re_modifier();
if ($modifier_not_cegir !~ /m/xms) {
$modifier_not_cegir .= 'm';
}
# /xx modifier
if (($modifier_not_cegir =~ tr/x//) >= 2) {
$regexp = mb::_ignore_space($regexp);
}
# /i modifier
if ($modifier_i) {
$parsed .= sprintf('{@{[mb::_ignorecase(qr%s%s)]}}%s', $regexp, $modifier_not_cegir, $modifier_cegr);
}
else {
$parsed .= sprintf('{@{[' . 'qr%s%s ]}}%s', $regexp, $modifier_not_cegir, $modifier_cegr);
}
}
$parsed .= parse_ambiguous_char();
}
# provides bare Perl and JPerl compatible functions
elsif (/\G ( (?: lc | lcfirst | uc | ucfirst ) ) \b /xmsgc) {
$parsed .= "mb::$1";
$parsed .= parse_ambiguous_char();
}
# CORE::require, mb::require, require
elsif (/\G ( (?: CORE:: | mb:: )? require ) /xmsgc) {
$parsed .= $1;
$parsed .= parse_ambiguous_char();
}
# mb::use --> BEGIN { mb::require ... }
# mb::no --> BEGIN { mb::require ... }
mb::require 123 mb::require 123
mb::require 'file' mb::require 'file'
use Module 5.005; use Module 5.005;
use Module 5.005 qw(A B C); use Module 5.005 qw(A B C);
use Module 5.005 (); use Module 5.005 ();
use Module; use Module;
use Module qw(A B C); use Module qw(A B C);
use Module (); use Module ();
mb::use Module 5.005; BEGIN { mb::require 'Module'; Module->VERSION(5.005); Module->import; };
mb::use Module 5.005 qw(A B C); BEGIN { mb::require 'Module'; Module->VERSION(5.005); Module->import(qw(A B C)); };
mb::use Module 5.005 (); BEGIN { mb::require 'Module'; Module->VERSION(5.005); };
mb::use Module; BEGIN { mb::require 'Module'; Module->import; };
mb::use Module qw(A B C); BEGIN { mb::require 'Module'; Module->import(qw(A B C)); };
mb::use Module (); BEGIN { mb::require 'Module'; };
no Module 5.005; no Module 5.005;
no Module 5.005 qw(A B C); no Module 5.005 qw(A B C);
no Module 5.005 (); no Module 5.005 ();
no Module; no Module;
no Module qw(A B C); no Module qw(A B C);
no Module (); no Module ();
mb::no Module 5.005; BEGIN { mb::require 'Module'; Module->VERSION(5.005); Module->unimport; };
mb::no Module 5.005 qw(A B C); BEGIN { mb::require 'Module'; Module->VERSION(5.005); Module->unimport(qw(A B C)); };
mb::no Module 5.005 (); BEGIN { mb::require 'Module'; Module->VERSION(5.005); };
mb::no Module; BEGIN { mb::require 'Module'; Module->unimport; };
mb::no Module qw(A B C); BEGIN { mb::require 'Module'; Module->unimport(qw(A B C)); };
mb::no Module (); BEGIN { mb::require 'Module'; };
chop chop
lc mb::lc
lcfirst mb::lcfirst
uc mb::uc
ucfirst mb::ucfirst
index index
rindex rindex
mb::getc() mb::getc()
mb::getc($fh) mb::getc($fh)
mb::getc $fh mb::getc $fh
mb::getc(FILE) mb::getc(\*FILE)
mb::getc FILE mb::getc \*FILE
mb::getc mb::getc
'MBCS-quotee' 'OO-quotee'
"MBCS-quotee" "OO-quotee"
`MBCS-quotee` `OO-quotee`
/MBCS-quotee/cgimosx m{\G${mb::_anchor}@{[mb::_ignorecase(qr/OO-quotee/mosx)]}@{[mb::_m_passed()]}}cg
/MBCS-quotee/cgmosx m{\G${mb::_anchor}@{[qr/OO-quotee/mosx ]}@{[mb::_m_passed()]}}cg
<MBCS-quotee> <OO-quotee>
q/MBCS-quotee/ q/OO-quotee/
qx'MBCS-quotee' qx'OO-quotee'
qw/MBCS-quotee/ qw/OO-quotee/
m'MBCS-quotee'cgimosx m{\G${mb::_anchor}@{[mb::_ignorecase(qr'OO-quotee'mosx)]}@{[mb::_m_passed()]}}cg
m'MBCS-quotee'cgmosx m{\G${mb::_anchor}@{[qr'OO-quotee'mosx ]}@{[mb::_m_passed()]}}cg
s'MBCS-regexp'MBCS-replacement'eegimosxr s{(\G${mb::_anchor})@{[mb::_ignorecase(qr'OO-regexp'mosx)]}@{[mb::_s_passed()]}}{$1 . mb::eval mb::eval q'OO-replacement'}egr
s'MBCS-regexp'MBCS-replacement'eegmosxr s{(\G${mb::_anchor})@{[qr'OO-regexp'mosx ]}@{[mb::_s_passed()]}}{$1 . mb::eval mb::eval q'OO-replacement'}egr
tr/MBCS-search/MBCS-replacement/cdsr s{[\x00-\xFF]*}{mb::tr($&,q/OO-search/,q/OO-replacement/,'cdsr')}ser
tr/MBCS-search/MBCS-replacement/cds s{[\x00-\xFF]+}{mb::tr($&,q/OO-search/,q/OO-replacement/,'cdsr')}se
tr/MBCS-search/MBCS-replacement/ds s{[\x00-\xFF]+}{mb::tr($&,q/OO-search/,q/OO-replacement/,'dsr')}se
y/MBCS-search/MBCS-replacement/cdsr s{[\x00-\xFF]*}{mb::tr($&,q/OO-search/,q/OO-replacement/,'cdsr')}ser
y/MBCS-search/MBCS-replacement/cds s{[\x00-\xFF]+}{mb::tr($&,q/OO-search/,q/OO-replacement/,'cdsr')}se
y/MBCS-search/MBCS-replacement/ds s{[\x00-\xFF]+}{mb::tr($&,q/OO-search/,q/OO-replacement/,'dsr')}se
qr'MBCS-quotee'cgimosx qr{\G${mb::_anchor}@{[mb::_ignorecase(qr'OO-quotee'mosx)]}@{[mb::_m_passed()]}}cg
qr'MBCS-quotee'cgmosx qr{\G${mb::_anchor}@{[qr'OO-quotee'mosx ]}@{[mb::_m_passed()]}}cg
split m'^' mb::_split qr{@{[qr'^'m ]}}
split m'MBCS-quotee'cgimosx mb::_split qr{@{[mb::_ignorecase(qr'OO-quotee'mosx)]}}cg
split m'MBCS-quotee'cgmosx mb::_split qr{@{[qr'OO-quotee'mosx ]}}cg
split qr'^' mb::_split qr{@{[qr'^'m ]}}
split qr'MBCS-quotee'cgimosx mb::_split qr{@{[mb::_ignorecase(qr'OO-quotee'mosx)]}}cg
split qr'MBCS-quotee'cgmosx mb::_split qr{@{[qr'OO-quotee'mosx ]}}cg
mb::split qr'^' mb::_split qr{@{[qr'^'m ]}}
mb::split qr'MBCS-quotee'cgimosx mb::_split qr{@{[mb::_ignorecase(qr'OO-quotee'mosx)]}}cg
mb::split qr'MBCS-quotee'cgmosx mb::_split qr{@{[qr'OO-quotee'mosx ]}}cg
qq/MBCS-quotee/ qq/OO-quotee/
qq'MBCS-quotee' qq'OO-quotee'
qx/MBCS-quotee/ qx/OO-quotee/
m/MBCS-quotee/cgimosx m{\G${mb::_anchor}@{[mb::_ignorecase(qr/OO-quotee/mosx)]}@{[mb::_m_passed()]}}cg
m/MBCS-quotee/cgmosx m{\G${mb::_anchor}@{[qr/OO-quotee/mosx ]}@{[mb::_m_passed()]}}cg
s/MBCS-regexp/MBCS-replacement/eegimosxr s{(\G${mb::_anchor})@{[mb::_ignorecase(qr/OO-regexp/mosx)]}@{[mb::_s_passed()]}}{$1 . mb::eval mb::eval q/OO-replacement/}egr
s/MBCS-regexp/MBCS-replacement/eegmosxr s{(\G${mb::_anchor})@{[qr/OO-regexp/mosx ]}@{[mb::_s_passed()]}}{$1 . mb::eval mb::eval q/OO-replacement/}egr
qr/MBCS-quotee/cgimosx qr{\G${mb::_anchor}@{[mb::_ignorecase(qr/OO-quotee/mosx)]}@{[mb::_m_passed()]}}cg
qr/MBCS-quotee/cgmosx qr{\G${mb::_anchor}@{[qr/OO-quotee/mosx ]}@{[mb::_m_passed()]}}cg
split /^/ mb::_split qr{@{[qr/^/m ]}}
split /MBCS-quotee/cgimosx mb::_split qr{@{[mb::_ignorecase(qr/OO-quotee/mosx)]}}cg
split /MBCS-quotee/cgmosx mb::_split qr{@{[qr/OO-quotee/mosx ]}}cg
split m/^/ mb::_split qr{@{[qr/^/m ]}}
split m/MBCS-quotee/cgimosx mb::_split qr{@{[mb::_ignorecase(qr/OO-quotee/mosx)]}}cg
split m/MBCS-quotee/cgmosx mb::_split qr{@{[qr/OO-quotee/mosx ]}}cg
split qr/^/ mb::_split qr{@{[qr/^/m ]}}
split qr/MBCS-quotee/cgimosx mb::_split qr{@{[mb::_ignorecase(qr/OO-quotee/mosx)]}}cg
split qr/MBCS-quotee/cgmosx mb::_split qr{@{[qr/OO-quotee/mosx ]}}cg
mb::split qr/^/ mb::_split qr{@{[qr/^/m ]}}
mb::split qr/MBCS-quotee/cgimosx mb::_split qr{@{[mb::_ignorecase(qr/OO-quotee/mosx)]}}cg
mb::split qr/MBCS-quotee/cgmosx mb::_split qr{@{[qr/OO-quotee/mosx ]}}cg
m:MBCS-quotee:cgimosx m{\G${mb::_anchor}@{[mb::_ignorecase(qr`OO-quotee`mosx)]}@{[mb::_m_passed()]}}cg
m:MBCS-quotee:cgmosx m{\G${mb::_anchor}@{[qr`OO-quotee`mosx ]}@{[mb::_m_passed()]}}cg
s:MBCS-regexp:MBCS-replacement:eegimosxr s{(\G${mb::_anchor})@{[mb::_ignorecase(qr`OO-regexp`mosx)]}@{[mb::_s_passed()]}}{$1 . mb::eval mb::eval q:OO-replacement:}egr
s:MBCS-regexp:MBCS-replacement:eegmosxr s{(\G${mb::_anchor})@{[qr`OO-regexp`mosx ]}@{[mb::_s_passed()]}}{$1 . mb::eval mb::eval q:OO-replacement:}egr
qr:MBCS-quotee:cgimosx qr{\G${mb::_anchor}@{[mb::_ignorecase(qr`OO-quotee`mosx)]}@{[mb::_m_passed()]}}cg
qr:MBCS-quotee:cgmosx qr{\G${mb::_anchor}@{[qr`OO-quotee`mosx ]}@{[mb::_m_passed()]}}cg
split m:^: mb::_split qr{@{[qr`^`m ]}}
split m:MBCS-quotee:cgimosx mb::_split qr{@{[mb::_ignorecase(qr`OO-quotee`mosx)]}}cg
split m:MBCS-quotee:cgmosx mb::_split qr{@{[qr`OO-quotee`mosx ]}}cg
split qr:^: mb::_split qr{@{[qr`^`m ]}}
split qr:MBCS-quotee:cgimosx mb::_split qr{@{[mb::_ignorecase(qr`OO-quotee`mosx)]}}cg
split qr:MBCS-quotee:cgmosx mb::_split qr{@{[qr`OO-quotee`mosx ]}}cg
mb::split qr:^: mb::_split qr{@{[qr`^`m ]}}
mb::split qr:MBCS-quotee:cgimosx mb::_split qr{@{[mb::_ignorecase(qr`OO-quotee`mosx)]}}cg
mb::split qr:MBCS-quotee:cgmosx mb::_split qr{@{[qr`OO-quotee`mosx ]}}cg
m@MBCS-quotee@cgimosx m{\G${mb::_anchor}@{[mb::_ignorecase(qr`OO-quotee`mosx)]}@{[mb::_m_passed()]}}cg
m@MBCS-quotee@cgmosx m{\G${mb::_anchor}@{[qr`OO-quotee`mosx ]}@{[mb::_m_passed()]}}cg
s@MBCS-regexp@MBCS-replacement@eegimosxr s{(\G${mb::_anchor})@{[mb::_ignorecase(qr`OO-regexp`mosx)]}@{[mb::_s_passed()]}}{$1 . mb::eval mb::eval q@OO-replacement@}egr
s@MBCS-regexp@MBCS-replacement@eegmosxr s{(\G${mb::_anchor})@{[qr`OO-regexp`mosx ]}@{[mb::_s_passed()]}}{$1 . mb::eval mb::eval q@OO-replacement@}egr
qr@MBCS-quotee@cgimosx qr{\G${mb::_anchor}@{[mb::_ignorecase(qr`OO-quotee`mosx)]}@{[mb::_m_passed()]}}cg
qr@MBCS-quotee@cgmosx qr{\G${mb::_anchor}@{[qr`OO-quotee`mosx ]}@{[mb::_m_passed()]}}cg
split m@^@ mb::_split qr{@{[qr`^`m ]}}
split m@MBCS-quotee@cgimosx mb::_split qr{@{[mb::_ignorecase(qr`OO-quotee`mosx)]}}cg
split m@MBCS-quotee@cgmosx mb::_split qr{@{[qr`OO-quotee`mosx ]}}cg
split qr@^@ mb::_split qr{@{[qr`^`m ]}}
split qr@MBCS-quotee@cgimosx mb::_split qr{@{[mb::_ignorecase(qr`OO-quotee`mosx)]}}cg
split qr@MBCS-quotee@cgmosx mb::_split qr{@{[qr`OO-quotee`mosx ]}}cg
mb::split qr@^@ mb::_split qr{@{[qr`^`m ]}}
mb::split qr@MBCS-quotee@cgimosx mb::_split qr{@{[mb::_ignorecase(qr`OO-quotee`mosx)]}}cg
mb::split qr@MBCS-quotee@cgmosx mb::_split qr{@{[qr`OO-quotee`mosx ]}}cg
m#MBCS-quotee#cgimosx m{\G${mb::_anchor}@{[mb::_ignorecase(qr#OO-quotee#mosx)]}@{[mb::_m_passed()]}}cg
m#MBCS-quotee#cgmosx m{\G${mb::_anchor}@{[qr#OO-quotee#mosx ]}@{[mb::_m_passed()]}}cg
s#MBCS-regexp#MBCS-replacement#eegimosxr s{(\G${mb::_anchor})@{[mb::_ignorecase(qr#OO-regexp#mosx)]}@{[mb::_s_passed()]}}{$1 . mb::eval mb::eval q#OO-replacement#}egr
s#MBCS-regexp#MBCS-replacement#eegmosxr s{(\G${mb::_anchor})@{[qr#OO-regexp#mosx ]}@{[mb::_s_passed()]}}{$1 . mb::eval mb::eval q#OO-replacement#}egr
qr#MBCS-quotee#cgimosx qr{\G${mb::_anchor}@{[mb::_ignorecase(qr#OO-quotee#mosx)]}@{[mb::_m_passed()]}}cg
qr#MBCS-quotee#cgmosx qr{\G${mb::_anchor}@{[qr#OO-quotee#mosx ]}@{[mb::_m_passed()]}}cg
split m#^# mb::_split qr{@{[qr#^#m ]}}
split m#MBCS-quotee#cgimosx mb::_split qr{@{[mb::_ignorecase(qr#OO-quotee#mosx)]}}cg
split m#MBCS-quotee#cgmosx mb::_split qr{@{[qr#OO-quotee#mosx ]}}cg
split qr#^# mb::_split qr{@{[qr#^#m ]}}
split qr#MBCS-quotee#cgimosx mb::_split qr{@{[mb::_ignorecase(qr#OO-quotee#mosx)]}}cg
split qr#MBCS-quotee#cgmosx mb::_split qr{@{[qr#OO-quotee#mosx ]}}cg
mb::split qr#^# mb::_split qr{@{[qr#^#m ]}}
mb::split qr#MBCS-quotee#cgimosx mb::_split qr{@{[mb::_ignorecase(qr#OO-quotee#mosx)]}}cg
mb::split qr#MBCS-quotee#cgmosx mb::_split qr{@{[qr#OO-quotee#mosx ]}}cg
/[abc 123]/xx m{\G${mb::_anchor}@{[qr/(?:@{[mb::_cc(qq[abc123])]})/xx ]}@{[mb::_m_passed()]}}
m/[abc 123]/xx m{\G${mb::_anchor}@{[qr/(?:@{[mb::_cc(qq[abc123])]})/xx ]}@{[mb::_m_passed()]}}
qr/[abc 123]/xx qr{\G${mb::_anchor}@{[qr/(?:@{[mb::_cc(qq[abc123])]})/xx ]}@{[mb::_m_passed()]}}
s/[abc 123]//xx s{(\G${mb::_anchor})@{[qr/(?:@{[mb::_cc(qq[abc123])]})/xx ]}@{[mb::_s_passed()]}}{$1 . qq //}e
split /[abc 123]/xx mb::_split qr{@{[qr/(?:@{[mb::_cc(qq[abc123])]})/xxm ]}}
split m/[abc 123]/xx mb::_split qr{@{[qr/(?:@{[mb::_cc(qq[abc123])]})/xxm ]}}
$` mb::_PREMATCH()
${`} mb::_PREMATCH()
$PREMATCH mb::_PREMATCH()
${PREMATCH} mb::_PREMATCH()
${^PREMATCH} mb::_PREMATCH()
$& mb::_MATCH()
${&} mb::_MATCH()
$MATCH mb::_MATCH()
${MATCH} mb::_MATCH()
${^MATCH} mb::_MATCH()
$1 mb::_CAPTURE(1)
$2 mb::_CAPTURE(2)
$3 mb::_CAPTURE(3)
@{^CAPTURE} mb::_CAPTURE()
${^CAPTURE}[0] mb::_CAPTURE(0+1)
${^CAPTURE}[1] mb::_CAPTURE(1+1)
${^CAPTURE}[2] mb::_CAPTURE(2+1)
@- mb::_LAST_MATCH_START()
@LAST_MATCH_START mb::_LAST_MATCH_START()
@{LAST_MATCH_START} mb::_LAST_MATCH_START()
@{^LAST_MATCH_START} mb::_LAST_MATCH_START()
$-[1] mb::_LAST_MATCH_START(1)
$LAST_MATCH_START[1] mb::_LAST_MATCH_START(1)
${LAST_MATCH_START}[1] mb::_LAST_MATCH_START(1)
${^LAST_MATCH_START}[1] mb::_LAST_MATCH_START(1)
@+ mb::_LAST_MATCH_END()
@LAST_MATCH_END mb::_LAST_MATCH_END()
@{LAST_MATCH_END} mb::_LAST_MATCH_END()
@{^LAST_MATCH_END} mb::_LAST_MATCH_END()
$+[1] mb::_LAST_MATCH_END(1)
$LAST_MATCH_END[1] mb::_LAST_MATCH_END(1)
${LAST_MATCH_END}[1] mb::_LAST_MATCH_END(1)
${^LAST_MATCH_END}[1] mb::_LAST_MATCH_END(1)
"$`" "@{[mb::_PREMATCH()]}"
"${`}" "@{[mb::_PREMATCH()]}"
"$PREMATCH" "@{[mb::_PREMATCH()]}"
"${PREMATCH}" "@{[mb::_PREMATCH()]}"
"${^PREMATCH}" "@{[mb::_PREMATCH()]}"
"$&" "@{[mb::_MATCH()]}"
"${&}" "@{[mb::_MATCH()]}"
"$MATCH" "@{[mb::_MATCH()]}"
"${MATCH}" "@{[mb::_MATCH()]}"
"${^MATCH}" "@{[mb::_MATCH()]}"
"$1" "@{[mb::_CAPTURE(1)]}"
"$2" "@{[mb::_CAPTURE(2)]}"
"$3" "@{[mb::_CAPTURE(3)]}"
"@{^CAPTURE}" "@{[mb::_CAPTURE()]}"
"${^CAPTURE}[0]" "@{[mb::_CAPTURE(0)]}"
"${^CAPTURE}[1]" "@{[mb::_CAPTURE(1)]}"
"${^CAPTURE}[2]" "@{[mb::_CAPTURE(2)]}"
"@-" "@{[mb::_LAST_MATCH_START()]}"
"@LAST_MATCH_START" "@{[mb::_LAST_MATCH_START()]}"
"@{LAST_MATCH_START}" "@{[mb::_LAST_MATCH_START()]}"
"@{^LAST_MATCH_START}" "@{[mb::_LAST_MATCH_START()]}"
"$-[1]" "@{[mb::_LAST_MATCH_START(1)]}"
"$LAST_MATCH_START[1]" "@{[mb::_LAST_MATCH_START(1)]}"
"${LAST_MATCH_START}[1]" "@{[mb::_LAST_MATCH_START(1)]}"
"${^LAST_MATCH_START}[1]" "@{[mb::_LAST_MATCH_START(1)]}"
"@+" "@{[mb::_LAST_MATCH_END()]}"
"@LAST_MATCH_END" "@{[mb::_LAST_MATCH_END()]}"
( run in 1.984 second using v1.01-cache-2.11-cpan-71847e10f99 )