use Regexp::Common qw /URI/; my $re_a_tag = qr/.*<\/a>/si ; my $html = q` some link: www.perl.com http://www.perlmonks.com by! `; my @chunks = split(/($re_a_tag)/si , $html) ; foreach my $chunks_i ( @chunks ) { next if $chunks_i =~ /$re_a_tag/ ; $chunks_i =~ s/($RE{URI}{HTTP})/$1<\/a>/gsi ; } $html = join('' , @chunks) ; print "$html\n" ;