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"; } #### regex matches! regex.1 matches! regex.12 matches! regex.1a matches! regex.a regex.abc regex.a1 oregex.2