#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?xs)^(?P<timestamp>.{19})\ \[(?P<severity>\w{4,6})\]" & @CRLF & _
"\ \d+\#\d+:\ (\*\d+\ )?" & @CRLF & _
"(?P<err_msg>" & @CRLF & _
" (?:\"\S+\"\sis\snot\s)?" & @CRLF & _
" (?P<err_type>\w+)[\s(] " & @CRLF & _
" (?:requests,\ excess:\ (?P<err_rate>\d+\.\d+)" & @CRLF & _
" \ by\ zone\ \"(?P<err_zone>\S+)\"" & @CRLF & _
" |.+?)" & @CRLF & _
")" & @CRLF & _
"(?:" & @CRLF & _
" ,\ client:\ (?P<remote_addr>\d+\.\d+\.\d+\.\d+)" & @CRLF & _
" ,\ server:\ (?P<server>[^,\a]+)" & @CRLF & _
" (?:,\ request:\ \"(?P<method>[A-Z]{3,4}?)" & @CRLF & _
" \ (?P<uri>\/\S*?)(?P<uri_query>\?\S+)?" & @CRLF & _
" \ (?P<protocol>\S+)\"" & @CRLF & _
" )?" & @CRLF & _
" (?:,\ upstream:\ \"(?P<upstream>.+?)\")?" & @CRLF & _
" (?:,\ host:\ \"(?P<req_host>\S+)\")?" & @CRLF & _
" (?:,\ referrer:\ \"(?P<referrer>\S+)\")?" & @CRLF & _
"|)" & @CRLF & _
"$"
Local $sString = "2023/06/16 17:12:30 [error] 1814859#1814859: *228570402 limiting requests, excess: 50.120 by zone "resizerzone", client: 10.5.0.122, server: app.market.com, request: "GET /resizer/view?key=8e158c8741ce849a09ef84d316bb68e7&b=productimages&f=webp&s=0 HTTP/1.1", host: "market.com", referrer: "https://market.com/"" & @CRLF & _
""
Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYFULLMATCH)
; 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