#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?xJm)(?'char'[A-F0-9]{4,7})\;(?'replace'.*)(?:\s{1}(?'replace'[A-F0-9]{4,7}))+(?=\s)+(?:\s{1}(?'replace'[A-F0-9]{4,7}))+(?=\s)+(?:\s{1}(?'replace'[A-F0-9]{4,7}))+\;\ (?'comment'.*)(?:\n)|" & @CRLF & _
"(?'char'[A-F0-9]{4,7})\;(?'replace'.*)(?:\s{1}(?'replace'[A-F0-9]{4,7}))+(?=\s)+(?:\s{1}(?'replace'[A-F0-9]{4,7}))+\;\ (?'comment'.*)(?:\n)|" & @CRLF & _
"(?'char'[A-F0-9]{4,7})\;(?:\s{1}(?'replace'[A-F0-9]{4,7}))+(?=\s)+(?:\s{1}(?'replace'[A-F0-9]{4,7}))+\;\ (?'comment'.*)(?:\n)|" & @CRLF & _
"(?'char'[A-F0-9]{4,7})\;(?'replace'.*)\;\ (?'comment'.*)(?:\n)|" & @CRLF & _
"(?'range_start'[A-F0-9]{4,7})\-(?'range_end'[A-F0-9]{4,7})(?:\;\ )(?'comment'.*)(?:\n)|" & @CRLF & _
"(?'char'[A-F0-9]{4,7})(?:\;\ )(?'comment'.*)(?:\n)|" & @CRLF & _
"(?'range_start'[A-F0-9]{4,7})\-(?'range_end'[A-F0-9]{4,7})(?:\n)|" & @CRLF & _
"(?:^\ {3})(?'char'[A-F0-9]{4,7})(?:\n)|" & @CRLF & _
"(?<appendix>(?'appendix_type'Start|End)\sTable\s(?'appendix_number'(\w).(?'appendix_order'(\d)))(?=\ -----\n))"
Local $sString = " F001-AB12" & @CRLF & _
" 0221" & @CRLF & _
" 0234-024F" & @CRLF & _
" 02AE-02AF" & @CRLF & _
" 03AB; 03CB; Case map" & @CRLF & _
" 03B0; 03C5 0308 0301; Case map" & @CRLF & _
" 03C2; 03C3; Case map" & @CRLF & _
" 03B0; 03C5 0308 0301 0A1B; Case map" & @CRLF & _
" ----- Start Table A.1 -----" & @CRLF & _
" 03D0; 03B2; Case map" & @CRLF & _
" 03D1; 03B8; Case map" & @CRLF & _
" ----- End Table A.1 -----" & @CRLF & _
" 03D2; 03C5; Additional folding" & @CRLF & _
" 03D3; 03CD; Additional folding" & @CRLF & _
" 00DF; 0073 0073; Case map" & @CRLF & _
" 037B-037D" & @CRLF & _
" 037F-0383" & @CRLF & _
" 038B" & @CRLF & _
"Hoffman & Blanchet Standards Track [Page 89]" & @CRLF & _
"" & @CRLF & _
"RFC 3454 Preparation of Internationalized Strings December 2002" & @CRLF & _
" 1806; ; Map to nothing" & @CRLF & _
" 1806; ; Map to nothing" & @CRLF & _
" 1806; ; Map to nothing" & @CRLF & _
" 1806; ; Map to nothing" & @CRLF & _
" F0000-FFFFD" & @CRLF & _
" 100000-10FFFD" & @CRLF & _
" F0000" & @CRLF & _
" 013B; 013C; Case map" & @CRLF & _
" 013D; 013E; Case map" & @CRLF & _
" 0080-009F; [CONTROL CHARACTERS]" & @CRLF & _
" 06DD; ARABIC END OF AYAH" & @CRLF & _
" 070F; SYRIAC ABBREVIATION MARK" & @CRLF & _
" 180E; MONGOLIAN VOWEL SEPARATOR" & @CRLF & _
" 200C; ZERO WIDTH NON-JOINER" & @CRLF & _
" 200D; ZERO WIDTH JOINER" & @CRLF & _
" 2028; LINE SEPARATOR" & @CRLF & _
" 2029; PARAGRAPH SEPARATOR" & @CRLF & _
" 2060; WORD JOINER" & @CRLF & _
" 2061; FUNCTION APPLICATION" & @CRLF & _
" 2062; INVISIBLE TIMES" & @CRLF & _
" 013F; 0140; Case map" & @CRLF & _
" 0141; 0142; Case map" & @CRLF & _
" 0143; 0144; Case map" & @CRLF & _
" 0145; 0146; Case map" & @CRLF & _
" 0147; 0148; Case map" & @CRLF & _
" 0149; 02BC 006E; Case map" & @CRLF & _
" 014A; 014B; Case map" & @CRLF & _
" 014C; 014D; Case map" & @CRLF & _
""
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