I see you’re starting to discover the rest of the iceburg.
To give you a peak of other cases the method/proc I posted covers, here are comments from the proc’s header, which covers the III case you are now asking about.
# Example of name variations tested for desired_name = “last^first^middle” :
#
# name_in name_out
# ——- ——–
# 01) Ross^Russ^K Ross^Russ^K
# 02) Ross^Russ Ross^Russ
# 03) Ross^Russ^ Ross^Russ
# 04) Ross^Russ^, Ross^Russ
# 05) Ross^Russ K Ross^Russ^K
# 06) ^Russ^ ^Russ
# 07) ^Russ ^Russ
# 08) Ross^ Ross
# 09) Ross, Russ K Ross^Russ^K
# 10) Ross ,Russ K Ross^Russ^K
# 11) Ross, Russ Ross^Russ
# 12) Ross, Russ, Ross^Russ
# 13) Ross, Russ,^ Ross^Russ
# 14) Ross ,Russ Ross^Russ
# 15) Ross ,Russ, Ross^Russ
# 16) Ross ,Russ,^ Ross^Russ
# 17) Ross, Russ Jr. K Ross^Russ Jr^K
# 18) Ross ,Russ Jr. K Ross^Russ Jr^K
# 19) Ross, Russ III, K Ross^Russ III^K
# 20) Ross ,Russ III ,K Ross^Russ III^K
# 21) De La Cruz, David De La Cruz^David
# 22) De La Cruz ,David De La Cruz^David
# 23) Ross Ross
# 24) De La Cruz De La Cruz
# 25) Ross^ ^ Ross
# 26) Ross^^K Ross^^K
# 27) Russ K Russ^^K (this case works as programmed)
# 28) Ross^^ Ross
# 29) Ross^R^K Ross^R^K
# 30) Ross^R Ross^R
# 31) Ross^R^ Ross^R
Russ Ross
RussRoss318@gmail.com