c:\@Work\Perl\monks>perl -wMstrict -le "my $dotted_num_string = '1.22.333.4444'; my @nums = $dotted_num_string =~ /^(\d+)(?:\.(\d+))*$/; printf qq{'$_' } for @nums; print ''; ;; @nums = $dotted_num_string =~ /^(\d+)(\.\d+){3,5}$/; printf qq{'$_' } for @nums; print ''; ;; @nums = $dotted_num_string =~ m{ \G [.]? (\d+) }xmsg; printf qq{'$_' } for @nums; " '1' '4444' '1' '.4444' '1' '22' '333' '4444'