HTML.
   1 #!/usr/bin/perl -w
   2 # one <a>one</a>
   3 # is two three
   4 # three
   5 $/ = ".\n";
   6 while (<>) {
   7   next if !s{
   8     \b                 # start word ...
   9     ([a-z]+)           # grab word in $1 and \1
  10     (                  # save the tags and spaces in $2
  11     (\s|<[^>]+>)+      # spaces or HTML tags 
  12     )   
  13     (\1\b)             # repeated word in $4
  14   }
  15   "\e[7m$1\e[m$2\e[7m$4\e[m"igx;
  16   s/^([^\e]*\n)+//mg;  # remove lines that don't contain escapes
  17   s/^/$ARGV: /mg;      # insert filename at the beginning of the lines
  18   print;
  19 }
Normalmente el carácter ^ casa solamente con el comienzo de la cadena y el carácter $ con el final. Los \n empotrados no casan 
con ^ ni $. El modificador /m modifica esta conducta. De este modo ^ y  $ casan con cualquier frontera de línea interna. Las anclas \A y \Z se utilizan entonces para casar con 
el comienzo y final de la cadena.
Sigue un ejemplo de uso:
Casiano Rodríguez León
