1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
use 5.010;
use warnings;
use Test::More;
plan 'no_plan';
use Regexp::Grammars;
# This checks for a bug where [^\]] was not interpreted as a charset.
my $bracket_bug = qr{
<Bracketed>
<token: Bracketed>
\[ <text=( [^!\]]+ )> \]
}xms;
my $escaped_bs = qr{
<Bracketed>
<token: Bracketed>
\[ <text=( [^!\\]+ )> \]
}xms;
my $old_bracket = qr{
<Bracketed>
<token: Bracketed>
\[ <text=( [^]!]+ )> \]
}xms;
no Regexp::Grammars;
while (my $input = <DATA>) {
chomp $input;
my ( $text, $to_match ) = split /:/, $input;
if ( $to_match =~ $bracket_bug ) {
ok( 'matched bracketed text with [^\]]+' );
is( $/{Bracketed}{text}, $text );
}
else {
fail( 'did not match bracketed text with [^\]]+' );
}
if ( $to_match =~ $escaped_bs ) {
ok( 'matched bracketed text with [^\\]+' );
is( $/{Bracketed}{text}, $text );
}
else {
fail( 'did not match bracketed text with [^\\]+' );
}
if ( $to_match =~ /$old_bracket/ ) {
ok( 'matched bracketed text with [^]]+' );
is( $/{Bracketed}{text}, $text );
}
else {
fail( 'did not match bracketed text with [^]]+' );
}
}
__DATA__
some text:[some text]
and more text :[ and more text ]
|