|Perl: the Markov chain saw|
When I have had to do things similar to this (read: parse unordered data), I've found that attempting to pass it through several pre-filters and trying for the 90% (or sometimes only 80%) solution works well.
Its sometimes faster to do the unthinkable --Enter the data by hand, then it is to write a highly complex regex/parsing engine for some unordered data format you're unlikely to see again. Or, write a partial solution that gets most of the data, spot check it, and then enter the rest by hand.
Ultimately, you're dealing with the problem that the a human can "understand" the data they're reading and make correct assumptions about the data, but the computer has a much harder time, and its not well-suited to it.
If the data is in Word, perhaps you could try formatting it *more*, and then try possibly getting it into Excel, or as mentioned above, using italics or bolding, etc.
"Naked I came from my mother's womb, and naked I will depart."