/(?:(\d)\w))+\d\w/ #### my @vars; $string =~ /(?{local @1 = ();} (?:( (\d) (?{ local @1 = (@1, $1) }) \w )+ \d\w (?{ @vars = @1 /x