#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)(\s*\{(?:\s*"Modulus"\s*:\s*"[a-zA-Z\d\+\/]+={0,2}"\s*(?(3)(?(4)(?(5)(?(6)(?(7)(?(8)(?(9)|,)|,)|,)|,)|,)|,)|,)()|\s*"Exponent"\s*:\s*"[a-zA-Z\d\+\/]+={0,2}"\s*(?(2)(?(4)(?(5)(?(6)(?(7)(?(8)(?(9)|,)|,)|,)|,)|,)|,)|,)()|\s*"P"\s*:\s*"[a-zA-Z\d\+\/]+={0,2}"\s*(?(2)(?(3)(?(5)(?(6)(?(7)(?(8)(?(9)|,)|,)|,)|,)|,)|,)|,)()|\s*"Q"\s*:\s*"[a-zA-Z\d\+\/]+={0,2}"\s*(?(2)(?(3)(?(4)(?(6)(?(7)(?(8)(?(9)|,)|,)|,)|,)|,)|,)|,)()|\s*"DP"\s*:\s*"[a-zA-Z\d\+\/]+={0,2}"\s*(?(2)(?(3)(?(4)(?(5)(?(7)(?(8)(?(9)|,)|,)|,)|,)|,)|,)|,)()|\s*"DQ"\s*:\s*"[a-zA-Z\d\+\/]+={0,2}"\s*(?(2)(?(3)(?(4)(?(5)(?(6)(?(8)(?(9)|,)|,)|,)|,)|,)|,)|,)()|\s*"InverseQ"\s*:\s*"[a-zA-Z\d\+\/]+={0,2}"\s*(?(2)(?(3)(?(4)(?(5)(?(6)(?(7)(?(9)|,)|,)|,)|,)|,)|,)|,)()|\s*"D"\s*:\s*"[a-zA-Z\d\+\/]+={0,2}"\s*(?(2)(?(3)(?(4)(?(5)(?(6)(?(7)(?(8)|,)|,)|,)|,)|,)|,)|,)()){8}\s*\}\s*\2\3\4\5\6\7\8\9)|(\s*\{(?:\s*"Modulus"\s*:\s*"[a-zA-Z\d\+\/]+={0,2}"\s*(?(12)|,)()|\s*"Exponent"\s*:\s*"[a-zA-Z\d\+\/]+={0,2}"\s*(?(11)|,)()){2}\s*\}\s*\11\12)"
Local $sString = "" & @CRLF & _
" {" & @CRLF & _
" "Modulus": "AQAB", " & @CRLF & _
""Exponent": "AQAB"," & @CRLF & _
""P": "AQAB", " & @CRLF & _
""Q": "AQAB"," & @CRLF & _
"" & @CRLF & _
""DP": "AQAB"," & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
""DQ": "AQAB"," & @CRLF & _
""InverseQ": "AQAB"," & @CRLF & _
""D": "AQAB" " & @CRLF & _
"" & @CRLF & _
"} " & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
" {" & @CRLF & _
" "Modulus": "AQAB", " & @CRLF & _
""Exponent": "AQAB" " & @CRLF & _
"" & @CRLF & _
"} " & @CRLF & _
"(?(1)(?(2)(?(3)(?(4)(?(5)(?(6)(?(7)|,)|,)|,)|,)|,)|,)|,)" & @CRLF & _
"2-3-4-5-6-7-8-9" & @CRLF & _
"(?(3)(?(4)(?(5)(?(6)(?(7)(?(8)(?(9)|,)|,)|,)|,)|,)|,)|,)" & @CRLF & _
"(?(2)(?(4)(?(5)(?(6)(?(7)(?(8)(?(9)|,)|,)|,)|,)|,)|,)|,)" & @CRLF & _
"(?(2)(?(3)(?(5)(?(6)(?(7)(?(8)(?(9)|,)|,)|,)|,)|,)|,)|,)" & @CRLF & _
"(?(2)(?(3)(?(4)(?(6)(?(7)(?(8)(?(9)|,)|,)|,)|,)|,)|,)|,)" & @CRLF & _
"(?(2)(?(3)(?(4)(?(5)(?(7)(?(8)(?(9)|,)|,)|,)|,)|,)|,)|,)" & @CRLF & _
"(?(2)(?(3)(?(4)(?(5)(?(6)(?(8)(?(9)|,)|,)|,)|,)|,)|,)|,)" & @CRLF & _
"(?(2)(?(3)(?(4)(?(5)(?(6)(?(7)(?(9)|,)|,)|,)|,)|,)|,)|,)" & @CRLF & _
"(?(2)(?(3)(?(4)(?(5)(?(6)(?(7)(?(8)|,)|,)|,)|,)|,)|,)|,)" & @CRLF & _
"" & @CRLF & _
"(?(DEFINE)(?P<b64>[a-zA-Z\d\+\/]+={0,2})(?P<Q1>\s*")(?P<C1>(?(22)(?(23)(?(24)(?(25)(?(26)(?(27)(?(28)|,)|,)|,)|,)|,)|,)|,))(?P<C2>(?(21)(?(23)(?(24)(?(25)(?(26)(?(27)(?(28)|,)|,)|,)|,)|,)|,)|,))(?P<C3>(?(21)(?(22)(?(24)(?(25)(?(26)(?(27)(?(28)|,)|,)|,)|,)|,)|,)|,))(?P<C4>(?(21)(?(22)(?(23)(?(25)(?(26)(?(27)(?(28)|,)|,)|,)|,)|,)|,)|,))(?P<C5>(?(21)(?(22)(?(23)(?(24)(?(26)(?(27)(?(28)|,)|,)|,)|,)|,)|,)|,))(?P<C6>(?(21)(?(22)(?(23)(?(24)(?(25)(?(27)(?(28)|,)|,)|,)|,)|,)|,)|,))(?P<C7>(?(21)(?(22)(?(23)(?(24)(?(25)(?(26)(?(28)|,)|,)|,)|,)|,)|,)|,))(?P<C8>(?(21)(?(22)(?(23)(?(24)(?(25)(?(26)(?(27)|,)|,)|,)|,)|,)|,)|,))(?P<Q2>"\s*:\s*"(?P>b64)"\s*)(?P<Modulus>(?P>Q1)Modulus(?P>Q2))(?P<Exponent>(?P>Q1)Exponent(?P>Q2))(?P<P>(?P>Q1)P(?P>Q2))(?P<Q>(?P>Q1)Q(?P>Q2))(?P<DP>(?P>Q1)DP(?P>Q2))(?P<DQ>(?P>Q1)DQ(?P>Q2))(?P<InverseQ>(?P>Q1)InverseQ(?P>Q2))(?P<D>(?P>Q1)D(?P>Q2)))(\s*{\s*)(?:(?P>Modulus)(?P>C1)()|(?P>Exponent)(?P>C2)()|(?P>P)(?P>C3)()|(?P>Q)(?P>C4)()|(?P>DP)(?P>C5)()|(?P>DQ)(?P>C6)()|(?P>InverseQ)(?P>C7)()|(?P>D)(?P>C8)()){8}\s*}"
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