Here you are:
regexReplace($new column (#3)$, "((?<!([^;] )|-)(\\b[A-Z][^A-Z; ]+(-[A-Z][^A-Z; ]+))|(?<!([^;] )|-)(\\b[A-Z][^A-Z; ]+))", "$1, ")
EDITED: Added “|-” to look behind patterns so that if the second part of the last name begins with a capital letter, now it won’t be a match. E.g. LiuHung-Wen