c:\@Work\Perl\monks>perl -wMstrict -le "use Regexp::Common qw(net); ;; for my $s ( '1.2.3.4', '1.22.111.222', 'a1.2.3.4a b1.22.111.221b', '999.9.9.9', '9.9.9.999', ) { printf qq{'$s' -> }; (my $t = $s) =~ s{ (? 'x.x.x.4' '1.22.111.222' -> 'x.xx.xxx.222' 'a1.2.3.4a b1.22.111.221b' -> 'ax.x.x.4a bx.xx.xxx.221b' '999.9.9.9' -> '999.9.9.9' '9.9.9.999' -> '9.9.9.999'