my @link; while () { my @l = m~]+>([^<>]+)~ig; next unless 3 == @l; push @link, grep {$_ =~ /^[RT]\d+$/} @l; } print "$_\n" for @link; _ _ D A T A _ _ BS -202 -135 R00929; HS$IFNB_14. BS -167 -94 R00916; HS$IFNB_01; Binding factors: R2 T00712. BS -100 -61 R00917; HS$IFNB_02; Binding factors: IRF1 T00422, IRF-2 BS T00425.