^ # match beginning of string ( # begin first stored group 1 # match a one 1+? # then match one or more ones, minimally. ) # end storing first group \1+ # match the first group, repeated one or more times. $ # match end of string. #### $y=shift; for($i=2;$i<=$y;){ next if$y%$i++; $y/=--$i; push@x,$i } print@{$,=x}; #### $y=shift;for($i=2;$i<=$y;){next if$y%$i++;$y/=--$i;push@x,$i}print@{$,=x};