This is an attempt to codify the best-guess algorithm suggested for ambigious name components on hcard-brainstorm. Processing is only attempted if the entered value is not a valid value for fn.
fn
Result:
<div class="fn"> <span class="n"> <span class="honorific-prefix">Rev</span> <span class="honorific-prefix">Wg Cdr</span> <span class="given-name">Drew</span> <span class="family-name">McLellan</span> <span class="honorific-suffix">PHD</span> <span class="honorific-suffix">MSc</span> <span class="honorific-suffix">BSc</span> <span class="honorific-suffix">Hons</span> </span> </div>