I have been down this long, painful road. First, look at Lingua::EN::NameParse, it can help. Second, consider the following names:
J R Jones
JR Jones (Yes, no vowel in the first name. I have an uncle who is WD Bascombe, III; it's that way on his birth-certificate, and no, his father was not WD, Jr....)
J. R. R. Tolkein
Inez dela Vega y Montoya
Louis de la Salle
Tiger (Single name, not first, not last, just 'name')