I think you are on the right track with the 2004 discussion, particularly BrowserUK's commented response: Re^3: parsing a bibliography. I would recommend that you build a simple script with a regular expression that tries to sort the bibliography records into separate files based on their types. Recommend you follow other advice in that 2004 thread such that you dump records into an error file that don't match any of your rules so that you can fine-tune your regular expressions. Once you've got the records separated into distinct files, you can run them through another script (or subroutine) that contains a regular expression specific to that type of record.
You may want to start with a list of rules that specify how you differentiate between record types, and then post a sample regex. I think you'll find plenty of monks who will be happy to edit your regex, but perhaps fewer willing to write the whole thing for you. :)