in reply to RegEx Problem?

It's in almost any case more economical (read: faster in the long run) to use a database, if you can use the DBs functions and other possibilities to select what you want.
However: it depends on the amount of data you expect, and how often you intend to run this script.

If there are more than a few lines of data and the script will be in heavy use, then use a database and use string-functions/regexp-capabilities of your db of choice in dynamic build prepared statements.

OTH 'eceonomical' depends besides other factors on how often the script will be run and how long it takes you to adapt it to use a DB.

Update:I assumed you had in some way structured data, if you're dealing with unstructured data in reasonable amounts, go with FoxtrotUniforms answer.
If you have really a lot of data, MySQL with a two-column table (auto-increment-pk-column and a text-column with your data) with fulltext-index will be faster though

regards,
tomte