#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)^([A-Z](([A-Z]{1,2}[a-z0-9]+)+([A-Z]{1,3}[a-z0-9]+)*[A-Z]{0,3}|([a-z0-9]+[A-Z]{0,3})*|[A-Z]{1,2}))$|^([a-z][a-z0-9]*(([A-Z]{1,3}[a-z0-9]+)*[A-Z]{0,3}|([a-z0-9]+[A-Z]{1,3})*|[A-Z]{1,3}))$"
Local $sString = "ABCD" & @CRLF & _
"ABCDE" & @CRLF & _
"MdeADFAFdsADFads" & @CRLF & _
"DeviceSNSD" & @CRLF & _
"AabcABCD" & @CRLF & _
"ABabcABCD" & @CRLF & _
"ABabcABCDabcABCD" & @CRLF & _
"ABCabcABCD" & @CRLF & _
"ABCabcABCDabcABCDabcABCDabcABCD" & @CRLF & _
"ABCDabcABCD" & @CRLF & _
"ABCDabcABCDabcABCDabcABCDabcABCD" & @CRLF & _
"HTMLParser" & @CRLF & _
"ContextHTMLParser" & @CRLF & _
"ABCDabcABC" & @CRLF & _
"ABCDabcAB" & @CRLF & _
"ABCDabcA" & @CRLF & _
"CamelCa_1" & @CRLF & _
"HELLO" & @CRLF & _
"snake_case" & @CRLF & _
"2PascalCase" & @CRLF & _
"streamIOIO" & @CRLF & _
"gREATERDtha" & @CRLF & _
"modeADFAFdsADFads" & @CRLF & _
"camelCa_1" & @CRLF & _
"contextHTMLParser" & @CRLF & _
"hELLO" & @CRLF & _
"AabcABCDabcABC" & @CRLF & _
"AabcABCDabcABCD" & @CRLF & _
"AabcABCabcABCD" & @CRLF & _
"ABabcABCDabcABC" & @CRLF & _
"ABabcABCDabcABCD" & @CRLF & _
"ABabcABCabcABCD" & @CRLF & _
"aBabcABCDabcABC" & @CRLF & _
"aBabcABCDabcABCD" & @CRLF & _
"aBabcABCabcABCD" & @CRLF & _
"ababcABCDabcABC" & @CRLF & _
"ababcABCDabcABCD" & @CRLF & _
"ababcABCabcABCD" & @CRLF & _
"SerialNO" & @CRLF & _
"serialNo" & @CRLF & _
"context" & @CRLF & _
"camelCasE" & @CRLF & _
"aGa" & @CRLF & _
"alphabet" & @CRLF & _
"serialNO" & @CRLF & _
"modeADFdsADFads" & @CRLF & _
"streamIO" & @CRLF & _
"aBCabcABCabcA" & @CRLF & _
"aBCabcA" & @CRLF & _
"aabc123" & @CRLF & _
"aabcABC" & @CRLF & _
"ab" & @CRLF & _
"abc" & @CRLF & _
"abcd" & @CRLF & _
"abcde" & @CRLF & _
"deviceSNS" & @CRLF & _
"pathASNs" & @CRLF & _
"dscpCP" & @CRLF & _
"awsVPC" & @CRLF & _
"deviceID" & @CRLF & _
"camelCasecamelCasecamelCasecamelCasecamelCasecamelCase" & @CRLF & _
"gREA1" & @CRLF & _
"gREAt" & @CRLF & _
"gREAtREAt" & @CRLF & _
"cP3" & @CRLF & _
"a1" & @CRLF & _
"aABC" & @CRLF & _
"a123" & @CRLF & _
"modeADFsADFads" & @CRLF & _
"a1G" & @CRLF & _
"aG" & @CRLF & _
"a" & @CRLF & _
"modeADFads" & @CRLF & _
"camelCase" & @CRLF & _
"lThan30DaysCount" & @CRLF & _
"lessThan30DaysCount" & @CRLF & _
"lessThan30DaysCountA" & @CRLF & _
"greaterThan30LessThan60DaysCount" & @CRLF & _
"greaterThan60LessThan90DaysCount" & @CRLF & _
"greaterThan90DaysCount" & @CRLF & _
"pascalCase" & @CRLF & _
"pascal2Case" & @CRLF & _
"pascalCaseA" & @CRLF & _
"pascal2CaseA" & @CRLF & _
"modeA" & @CRLF & _
"mode2A" & @CRLF & _
"mode2A2" & @CRLF & _
"mode2A2A" & @CRLF & _
"createAMode" & @CRLF & _
"createBMode" & @CRLF & _
"madeEasy" & @CRLF & _
"wonderFul" & @CRLF & _
"andMe" & @CRLF & _
"htmlParser" & @CRLF & _
"h" & @CRLF & _
"aaA" & @CRLF & _
"camel01C" & @CRLF & _
"camel01c01" & @CRLF & _
"camel01C01" & @CRLF & _
"camel01CC01" & @CRLF & _
"camel0a1c1" & @CRLF & _
"camel0a1C1" & @CRLF & _
"camel0ac1b1C1" & @CRLF & _
"camelC" & @CRLF & _
"camelC1" & @CRLF & _
"camelCA" & @CRLF & _
"camelCa1" & @CRLF & _
"ibsReleaseTestVerificationRegressionSuite" & @CRLF & _
"ibsReleaseTestVerificationRegressioNSuite" & @CRLF & _
"ibsReleaseTestVerificationRegressioN" & @CRLF & _
"xmlHttpRequest" & @CRLF & _
"newCustomerId" & @CRLF & _
"innerStopwatch" & @CRLF & _
"supportsIpv6OnIos" & @CRLF & _
"youTubeImporter" & @CRLF & _
"youtubeImporter" & @CRLF & _
"affine3D" & @CRLF & _
"Ag" & @CRLF & _
"ABCabcABCabc" & @CRLF & _
"AwsVPC" & @CRLF & _
"AaABC" & @CRLF & _
"PacalCasePacalCasePacalCasePacalCasePacalCasePacalCase" & @CRLF & _
"AabcABCabcABC" & @CRLF & _
"MoeADFdsADFads" & @CRLF & _
"ABCabcABC" & @CRLF & _
"ABCabcAB" & @CRLF & _
"ABabcABC" & @CRLF & _
"ABabcAB" & @CRLF & _
"AabcAB" & @CRLF & _
"ABCabcABCabcA" & @CRLF & _
"ABCabcA" & @CRLF & _
"Aabc123" & @CRLF & _
"AabcABC" & @CRLF & _
"A" & @CRLF & _
"AB" & @CRLF & _
"ABC" & @CRLF & _
"StreamIO" & @CRLF & _
"IOStream" & @CRLF & _
"DeviceID" & @CRLF & _
"DeviceSNS" & @CRLF & _
"Context" & @CRLF & _
"PascalCase" & @CRLF & _
"Pascal2Case" & @CRLF & _
"PascalCaseA" & @CRLF & _
"Pascal2CaseA" & @CRLF & _
"ModeA" & @CRLF & _
"Mode2A" & @CRLF & _
"Mode2A2" & @CRLF & _
"Mode2A2A" & @CRLF & _
"CreateAMode" & @CRLF & _
"CreateBMode" & @CRLF & _
"MadeEasy" & @CRLF & _
"WonderFul" & @CRLF & _
"AndMe" & @CRLF & _
"HtmlParser" & @CRLF & _
"H" & @CRLF & _
"AaA" & @CRLF & _
"Camel01C" & @CRLF & _
"Camel01c01" & @CRLF & _
"Camel01C01" & @CRLF & _
"Camel01CC01" & @CRLF & _
"Camel0a1c1" & @CRLF & _
"Camel0a1C1" & @CRLF & _
"Camel0ac1b1C1" & @CRLF & _
"CamelC" & @CRLF & _
"CamelC1" & @CRLF & _
"CamelCA" & @CRLF & _
"CamelCa1" & @CRLF & _
"IbsReleaseTestVerificationRegressionSuite" & @CRLF & _
"IbsReleaseTestVerificationRegressioNSuite" & @CRLF & _
"IbsReleaseTestVerificationRegressioN" & @CRLF & _
"XmlHttpRequest" & @CRLF & _
"NewCustomerId" & @CRLF & _
"InnerStopwatch" & @CRLF & _
"SupportsIpv6OnIos" & @CRLF & _
"YouTubeImporter" & @CRLF & _
"YoutubeImporter" & @CRLF & _
"Affine3D"
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