use strict; use warnings; use Test::More qw(no_plan); #number of tests is constantly changing #changed is to isnt: #this doesn't work, results in 'ab' isnt(eval {'abcdeee' =~ /(..)/;$1}, 'eee', q{using /(..)/}); #changed is to isnt: #this printed out only 'e' isnt(eval {'abcdeee' =~ /(.)\1/;$1}, 'eee', q{using /(.)\1/}); #changed is to isnt: #this printed out undef isnt(eval {'abcdeee' =~ /((.)\1)/;$2}, 'eee', q{using /((.)\1)/;$2}); #changed is to isnt: #this also printed out undef isnt(eval {'abcdeee' =~ /((.)\1)/;$1}, 'eee', q{using /((.)\1)/;$1}); #BINGO! this worked is(eval {'abcdeee' =~ /(.)(\1+)/;"$1$2"}, 'eee', q{using /(.)(\1+)/;"$1$2"});