>perl -wMstrict -le "printf qq{'%s' yields '%s' \n}, $_, join '', map /\d/ ? qq{arg$_} : $_, split /(\d+)/ for @ARGV ; " "1:2" "-p 1 -t 2 3" "1 2" "12" "no digits" '1:2' yields 'arg1:arg2' '-p 1 -t 2 3' yields '-p arg1 -t arg2 arg3' '1 2' yields 'arg1 arg2' '12' yields 'arg12' 'no digits' yields 'no digits'