#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mi)^(?<name>[^.,?;:\s]+)$|^(?:(?<honorific>(?:mrs?|ms|dr|prof|rev|hon)\.?|miss|sir|dame|lord|lady)\s+)?(?:(?<given_name>(?<first_name>[^.,?;:\s]+\.?)(?:\s+(?<middle_name>(?:[^.,?;:\s]+\.?)(?:\s+[^.,?;:\s]+\.?)*?))??)\s+)??(?:(?<family_name>(?:(?:(?:(?:a|ab|af|ap|abu|aït|al|ālam|at|ath|aust|austre|bar|bath|bat|ben|bin|ibn|bet|bint|da|das|de la|degli|del|dele|della|der|di|dos|du|e|el|fetch|vetch|fitz|i|ka|kil|gil|la|le|lille|lu|m'|mac|mc|mck|mhic|mic|mala|mellom|myljom|na|ณ|ned|nedre|neder|ngā|nic|ní|nin|nord|norr|ny|o|ó|ua|uí|opp|upp|öfver|ost|öst|öster|øst|østre|över|øvste|øvre|øver|öz|pour|putra|putera|putri|puteri|setia|setya|stor|söder|sør|sønder|syd|søndre|syndre|søre|te|ter|ter|tre|van|van de|van den|van der|van het|van 't|väst|väster|verch|erch|vest|vestre|vesle|vetle|von|war|zu|von und zu)\s)?[^.,!?;:\s]+)-)?(?:(?:a|ab|af|ap|abu|aït|al|ālam|at|ath|aust|austre|bar|bath|bat|ben|bin|ibn|bet|bint|da|das|de la|degli|del|dele|della|der|di|dos|du|e|el|fetch|vetch|fitz|i|ka|kil|gil|la|le|lille|lu|m'|mac|mc|mck|mhic|mic|mala|mellom|myljom|na|ณ|ned|nedre|neder|ngā|nic|ní|nin|nord|norr|ny|o|ó|ua|uí|opp|upp|öfver|ost|öst|öster|øst|østre|över|øvste|øvre|øver|öz|pour|putra|putera|putri|puteri|setia|setya|stor|söder|sør|sønder|syd|søndre|syndre|søre|te|ter|ter|tre|van|van de|van den|van der|van het|van 't|väst|väster|verch|erch|vest|vestre|vesle|vetle|von|war|zu|von und zu)\s+)?[^.,?;:\s]+)??(?:,?\s+(?<suffix>Sr\.?|Snr|Jr\.?|Jnr|[IVX]+))?)?(?<post_nominal>,.*)?$"
Local $sString = "John Doe" & @CRLF & _
"Mary Jane Smith" & @CRLF & _
"Jean-Luc van der Berg, Sr." & @CRLF & _
"Maria de la Cruz" & @CRLF & _
"Mohamed bin Ahmed al-Farsi" & @CRLF & _
"Anna-Nicole Johnson Jr." & @CRLF & _
"Carlos Alberto dos Santos" & @CRLF & _
"Sophie von und zu Rhein" & @CRLF & _
"Li Na" & @CRLF & _
"O'Connor Fitzpatrick III" & @CRLF & _
"Yusuf ibn Abdullah" & @CRLF & _
"Emma-Louise O'Reilly" & @CRLF & _
"Juan Carlos de la Torre" & @CRLF & _
"Fatima bint Mohammed" & @CRLF & _
"Hans-Christian Andersen" & @CRLF & _
"Elena di Matteo" & @CRLF & _
"Abdul-Rahman al-Hashimi" & @CRLF & _
"Isabella della Rovere" & @CRLF & _
"Jean-Pierre Dupont, Jr" & @CRLF & _
"Sara van den Berg" & @CRLF & _
"John Q. Public" & @CRLF & _
"Dr. Jane Doe, PhD" & @CRLF & _
"Prof. John Smith, MD" & @CRLF & _
"Mr. James Walter Thomas Jr." & @CRLF & _
"Ms. Emily Davis, CPA" & @CRLF & _
"Dr. Michael David Jacob Brown, DDS" & @CRLF & _
"Mrs. Sarah Wilson, RN" & @CRLF & _
"Rev. Thomas Anderson, DD" & @CRLF & _
"Mr. Adams" & @CRLF & _
"T'Challa" & @CRLF & _
"ǃXóõ ǁKaru" & @CRLF & _
"ǃHõã ǂNuka" & @CRLF & _
"J. K. Rowling" & @CRLF & _
"John Jacob Jingleheimer Schmidt"
Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYGLOBALFULLMATCH)
Local $aFullArray[0]
For $i = 0 To UBound($aArray) -1
_ArrayConcatenate($aFullArray, $aArray[$i])
Next
$aArray = $aFullArray
; Present the entire match result
_ArrayDisplay($aArray, "Result")
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm