#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)(?i)^(01|04|21|31)(\d{10})?(\d{1}>)(\d{16,27})\+\s+(\d{5,9})>"
Local $sString = "0100003949753>210000000003139471430009017+ 010001628>" & @CRLF & _
"0100000023651>000551106208600215460130935+ 010058907>" & @CRLF & _
"2100000440001>961116900000006600000009284+ 030001625>" & @CRLF & _
"042>000000676817431677100399580+ 010107280>" & @CRLF & _
"319>961116900000006600000009284+ 030001625>" & @CRLF & _
"" & @CRLF & _
"Absichtliche Fehler;" & @CRLF & _
"-0100003949753>210000000003139471430009017+ 010001628>" & @CRLF & _
"0100-000023651>000551106208600215460130935+ 010058907>" & @CRLF & _
"2100000440001>9611169000000006600000009284+ 030001625>" & @CRLF & _
"042>00000067681743167710.0399580+ 010107280>" & @CRLF & _
"319>961116900000006600000009284+ 030001.625>" & @CRLF & _
" 0100003949753>210000000003139471430009017+ 010001628>" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"#1: ESR 9/27, CHF 3949.75, Ref 210000000003139471430009017, Tn 010001628 (01-162-8)" & @CRLF & _
"#2: ESR 9/27, CHF 23.65, Ref 000551106208600215460130935, Tn 010058907 (01-5890-7)" & @CRLF & _
"#3: ESR 9/27, EUR 440.00, Ref 961116900000006600000009284, Tn 030001625 (03-162-5)" & @CRLF & _
"#4: ESR+ 9/27+ CHF ?? Ref 000000676817431677100399580, Tn 010107280 (01-10728-0)" & @CRLF & _
"#5: ESR+ 9/27+ EUR ??.?? Ref 961116900000006600000009284, Tn 030001625 (03-162-5)" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"ESR oder ESR+" & @CRLF & _
"" & @CRLF & _
"Gruppe1:" & @CRLF & _
"01 = ESR in CHF" & @CRLF & _
"04 = ESR+ in CHF" & @CRLF & _
"21 = ESR in EUR" & @CRLF & _
"31 = ESR+ in EUR" & @CRLF & _
"Nicht beachtet:" & @CRLF & _
"11 = ESR in CHF zur Gutschrift auf das eigene Konto" & @CRLF & _
"14 = ESR+ in CHF zur Gutschrift auf das eigene Konto" & @CRLF & _
"23 = ESR in EUR zur Gutschrift auf das eigene Konto" & @CRLF & _
"33 = ESR+ in EUR zur Gutschrift auf das eigene Konto" & @CRLF & _
"" & @CRLF & _
"Gruppe2: Betrag (bei ESR+ nicht vorhanden/leer)" & @CRLF & _
"Gruppe3: Prüfcode" & @CRLF & _
"Gruppe4: Referenznummer" & @CRLF & _
"Gruppe5: Kundennummer " & @CRLF & _
"VVXXXXXXP> VV = ESR-Code, XXXXXX = Ordnungsnummer (inkl. vorlaufende Nullen), P = Prüfziffer" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"" & @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