use v5.8.0; # or higher # For $^N our @rv; our @temp_rv; / (text); (?{ local @temp_rv = ( @temp_rv, $^N ) }) (?: (float) (?{ local @temp_rv = ( @temp_rv, $^N ) }) (?:non-num) ){4} (?{ @rv = @temp_rv }) /x;