in reply to speeding up regex

You might find some good ideas in RE (tilly) 4: SAS log scanner.

As for measuring execution time without letting the script finish, a common approach is to have the script print out time elapsed at regular milestones. If you wish to be fancy, you can use Time::HiRes to print fractions of a second.

Of course you can't get very good information this way, but you can get a vague idea how how it is doing before it completes.