http://www.perlmonks.org?node_id=1018432


in reply to Problem with regular expression

I would apply one or more regular expressions to identify whether-or-not this a string that you are interested in.   Then, write another regex to match only what you need from each.   Use a subroutine or subroutines; “regex golf” only goes so far.   Treat the two problems separately, and break each one down into as many cases as you need.

Obviously, entry #11 is the odd-man-out from all the rest.   You need to build a suite of examples of everything that the string could possibly be, and determine exactly what should be used to extract the data-of-interest from each one.   Then, I strongly recommend putting the whole thing to the Test::Most.   Write a test suite that proves the correct operation of the program.   Also, write the program itself so that it is suspicious of all its inputs and will, say, die() if it encounters anything that it cannot handle.   (Otherwise, you have no practical way to realize that a problem exists, either in the data or in the program or both.   The fact that the program ran cleanly should be a strong indicator that both the data and the software are correct.)