It's a bit more complicated than you think. Look at some of our CP members' real names:
Pete O'Hanlon
Ennis Ray Lynch, Jr.
Wong Shao Voon
Bassam Abdul-Baki
and all the McDonalds and so on.
Having said all that, here's a regex that works for all members of our Rural Fire Service brigade website (which I look after):
^[A-Z]['a-z][a-zA-Z]*\s([a-zA-Z]+\s)?[A-Z]['a-z][-a-zA-Z]*$
Run it through Expresso (see our Free Tools forum for details) if you want to see what it does. It's far from perfect, but it catches most mistakes made by well-meaning people (Australians, anyway :) ).
Cheers,
Peter