my $reg1 = qr{((?:(?<=<)ab(?=>))|(?:(?)))}; while() { chomp; print $_, "\t", m/$reg1/?"yes $1":"no", "\n"; } __DATA__ <> ab __END__ Output: no <> no yes ab ab yes ab