in reply to perl regex for repeating words

Please use <code></code> tags around your code. I am not sure what is going on each line.
There are a number of ways to approach a situation like this. Before suggesting one, I'd like a better idea of exactly what you have.
Basically the easier you make it for the Monks to help you, the more likely you are to get a relevant answer.

edit: Maybe the data is like this?

b=23 y=0x11 arg=0x70 def=0x1 val=0x234 checking system b=71 y=0x35 arg=0x87 def=0x3 val=0x76d h=reg.k2.io.chk 0x2001 b=54 y=0x23 arg=0x78 def=0x2 val=0x65b f chk.fin.reg.m_cwr 0x213 b=54 y=0x23 arg=0x78 def=0x2 val=0x65b checking system b=40 y=0x90 arg=0x34 def=0x5 val=0x2197 f ref.grf.pin.clk_trg 0x0021
I have no idea. Please show what goes on what line. This will make a difference.
Without that information, we are just guessing.

###### update
Ok, assuming the formatting by Athanasius++ is correct.
This is a simple albeit very wordy algorithm - make a single line out of the multi-line record and run a regex on that.

#!/usr/bin/perl use warnings; use strict; my ($b,$f); while ( ($b, $f)=get_record(), defined ($b) ) { print "b=\'$b\' f=\'$f\'\n"; } sub get_record { my $line; my $record=''; while (defined($line=<DATA>) and $line !~ /^\s*$/) { $record .= $line } my ($b)= $record =~ /b\=(\w+)/; my ($f)= $record =~ /f (.*)/; $f//=""; return ($b,$f); } =Prints: b='23' f='' b='71' f='' b='54' f='chk.fin.reg.m_cwr 0x213' b='54' f='' b='40' f='ref.grf.pin.clk_trg 0x0021' =cut __DATA__ b=23 y=0x11 arg=0x70 def=0x1 val=0x234 checking system b=71 y=0x35 arg=0x87 def=0x3 val=0x76d h=reg.k2.io.chk 0x2001 b=54 y=0x23 arg=0x78 def=0x2 val=0x65b f chk.fin.reg.m_cwr 0x213 b=54 y=0x23 arg=0x78 def=0x2 val=0x65b checking system b=40 y=0x90 arg=0x34 def=0x5 val=0x2197 f ref.grf.pin.clk_trg 0x0021