in reply to highlighting match found

"a number of tags which makes it hard to read" ? Well, just s/// them away; those you don't need, that is... perhaps using a dispatch table if you need many options .

But, a more fundamental point: the notion that TJPride's (initial) advice didn't go far enough at was more than just a little hard to infer from your OP. That's is a reason we ask SOPW to post compilable, executable code and sample data.

Knowing what you're stuffing into $PAT would also be very helpful; it's just a gut feeling at this point, but I'm guessing that if we knew the content of $PAT, we'd have a lot more information upon which to provide some alternate but also useful (maybe more so in your view) advice.

And since you like the way system grep "pretty easy," you'll do well to read the docs for Perl's grep.