our @results; / ... The work ... (?{ push @results, ... }) (?!) # Backtrack to find next result. /x; #### "abcde"=~/.*?(.)(?{print $1,"\n"})[0]/; #produce : abcde "abcde"=~/.*?(.)(?{print $1,"\n"})0/; #nothing