1#!./perl 2 3BEGIN { 4 chdir 't' if -d 't'; 5 @INC = '../lib'; 6 require Config; 7 if (($Config::Config{'extensions'} !~ /\bre\b/) ){ 8 print "1..0 # Skip -- Perl configured without re module\n"; 9 exit 0; 10 } 11} 12 13use strict; 14 15use Test::More; # test count at bottom of file 16use re qw(is_regexp regexp_pattern regmust 17 regname regnames regnames_count); 18{ 19 my $qr=qr/foo/pi; 20 ok(is_regexp($qr),'is_regexp($qr)'); 21 ok(!is_regexp(''),'is_regexp("")'); 22 is((regexp_pattern($qr))[0],'foo','regexp_pattern[0]'); 23 is((regexp_pattern($qr))[1],'ip','regexp_pattern[1]'); 24 is(regexp_pattern($qr),'(?pi-xsm:foo)','scalar regexp_pattern'); 25 ok(!regexp_pattern(''),'!regexp_pattern("")'); 26} 27{ 28 my $qr=qr/here .* there/x; 29 my ($anchored,$floating)=regmust($qr); 30 is($anchored,'here',"Regmust anchored - qr//"); 31 is($floating,'there',"Regmust floating - qr//"); 32 my $foo='blah'; 33 ($anchored,$floating)=regmust($foo); 34 is($anchored,undef,"Regmust anchored - non ref"); 35 is($floating,undef,"Regmust anchored - non ref"); 36 my $bar=['blah']; 37 ($anchored,$floating)=regmust($foo); 38 is($anchored,undef,"Regmust anchored - ref"); 39 is($floating,undef,"Regmust anchored - ref"); 40} 41 42if ('1234'=~/(?:(?<A>\d)|(?<C>!))(?<B>\d)(?<A>\d)(?<B>\d)/){ 43 my @names = sort +regnames(); 44 is("@names","A B","regnames"); 45 my @names = sort +regnames(0); 46 is("@names","A B","regnames"); 47 my $names = regnames(); 48 is($names, "B", "regnames in scalar context"); 49 @names = sort +regnames(1); 50 is("@names","A B C","regnames"); 51 is(join("", @{regname("A",1)}),"13"); 52 is(join("", @{regname("B",1)}),"24"); 53 { 54 if ('foobar'=~/(?<foo>foo)(?<bar>bar)/) { 55 is(regnames_count(),2); 56 } else { 57 ok(0); ok(0); 58 } 59 } 60 is(regnames_count(),3); 61} 62# New tests above this line, don't forget to update the test count below! 63use Test::More tests => 20; 64# No tests here! 65