in reply to Question on RE based matching

You want the regex to match across multiple lines, so you will need to use /m so that ^ will match at the start of any line in the string, and /s so that . will match newlines. Ie. try:

if(/^HEADER(.*?)GENRE_BY(.*)/sm) { print; }

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."