I've been testing the ability of the OpCit Parser::Citation module to pick out information from citation strings - and it works pretty well.
If you'd like to try it, use the Citation Finder form to submit references copied from PDF papers or fulltext websites.
(Please report any formats that the parser struggles with).
Known problems: Can't handle name suffixes (eg Jr.), or names with more than two initials.
ParaCite also uses this method of citation parsing, but searches other document resources such as arXiv.