my @t = qw( regex regex.1 regex.12 regex.1a regex.a regex.abc regex.a1 oregex.2 ); for (@t) { print $_; print ' matches!' if /^regex(?!\.[^\d])(\.\d*)?/; print "\n"; }