$_="ent 1 12 to 1402, 222-2222, 1304, 555.555.5555 and 501, 777 7777 12,4567 11.111"; sub GO{ return "LINK($1)$2" if $_[0]=~/^(\d{3,4})(,?)$/; # here more cases return "NO($_[0])"; }; s/([\.\-\,\d]+)/&GO($1)/gexi; print $_ . "\n";