my @t = qw( regex regex. regex.1 regex.12 regex.1a regex.a regex.abc regex.a1 oregex.2 ); say s/^regex(?!\.[^\d])(\.\d*)?/|$&|/r for (@t); #### |regex| |regex.| |regex.1| |regex.12| |regex.1|a regex.a regex.abc regex.a1 oregex.2