#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)(MacBook[1-7],\d|MacBookAir[1-4],\d|MacBookPro[1-8],\d|Macmini[1-5],\d|iMac(1[0-2]|[4-9]|),\d|^MacPro[1-5],\d$)"
Local $sString = "Model information: https://support.apple.com/en-us/HT210222" & @CRLF & _
"Published Date: February 01, 2021" & @CRLF & _
"" & @CRLF & _
"Validation: https://regex101.com/r/p5r9WT/3/" & @CRLF & _
"" & @CRLF & _
"This regex is exact. No new models are supported." & @CRLF & _
"" & @CRLF & _
"(MacBookAir[5-9]|MacBookPro(9|1[0-6])|MacPro[6-7]|iMac(Pro1|1[3-9]|20)|MacBook(10|9|8)|Macmini[6-8]),\d" & @CRLF & _
"" & @CRLF & _
"pattern matches:" & @CRLF & _
"" & @CRLF & _
"https://support.apple.com/en-us/HT201608" & @CRLF & _
"" & @CRLF & _
"Supported:" & @CRLF & _
"MacBook10,1" & @CRLF & _
"MacBook9,1" & @CRLF & _
"MacBook8,1" & @CRLF & _
"" & @CRLF & _
"Unsupported:" & @CRLF & _
"MacBook7,1" & @CRLF & _
"MacBook6,1" & @CRLF & _
"MacBook5,2" & @CRLF & _
"MacBook5,1" & @CRLF & _
"MacBook4,1" & @CRLF & _
"MacBook3,1" & @CRLF & _
"MacBook2,1" & @CRLF & _
"MacBook1,1" & @CRLF & _
"" & @CRLF & _
"https://support.apple.com/en-us/HT201862" & @CRLF & _
"" & @CRLF & _
"Supported:" & @CRLF & _
"MacBookAir9,1" & @CRLF & _
"MacBookAir8,2" & @CRLF & _
"MacBookAir8,1" & @CRLF & _
"MacBookAir7,2" & @CRLF & _
"MacBookAir7,2" & @CRLF & _
"MacBookAir7,1" & @CRLF & _
"MacBookAir6,2" & @CRLF & _
"MacBookAir6,1" & @CRLF & _
"MacBookAir6,2" & @CRLF & _
"MacBookAir6,1" & @CRLF & _
"MacBookAir5,2" & @CRLF & _
"MacBookAir5,1" & @CRLF & _
"" & @CRLF & _
"Unsupported:" & @CRLF & _
"MacBookAir4,2" & @CRLF & _
"MacBookAir4,1" & @CRLF & _
"MacBookAir3,2" & @CRLF & _
"MacBookAir3,1" & @CRLF & _
"MacBookAir2,1" & @CRLF & _
"MacBookAir1,1" & @CRLF & _
"" & @CRLF & _
"https://support.apple.com/en-us/HT201300" & @CRLF & _
"" & @CRLF & _
"Supported:" & @CRLF & _
"MacBookPro16,3" & @CRLF & _
"MacBookPro16,2" & @CRLF & _
"MacBookPro16,1" & @CRLF & _
"MacBookPro15,4" & @CRLF & _
"MacBookPro15,3" & @CRLF & _
"MacBookPro15,2" & @CRLF & _
"MacBookPro15,1" & @CRLF & _
"MacBookPro14,3" & @CRLF & _
"MacBookPro14,2" & @CRLF & _
"MacBookPro14,1" & @CRLF & _
"MacBookPro13,3" & @CRLF & _
"MacBookPro13,2" & @CRLF & _
"MacBookPro13,1" & @CRLF & _
"MacBookPro11,5" & @CRLF & _
"MacBookPro11,4" & @CRLF & _
"MacBookPro12,1" & @CRLF & _
"MacBookPro11,3" & @CRLF & _
"MacBookPro11,2" & @CRLF & _
"MacBookPro11,1" & @CRLF & _
"MacBookPro10,1" & @CRLF & _
"MacBookPro11,1" & @CRLF & _
"MacBookPro10,2" & @CRLF & _
"MacBookPro10,1" & @CRLF & _
"MacBookPro9,2" & @CRLF & _
"MacBookPro9,1" & @CRLF & _
"" & @CRLF & _
"Unsupported:" & @CRLF & _
"MacBookPro8,3" & @CRLF & _
"MacBookPro8,2" & @CRLF & _
"MacBookPro8,1" & @CRLF & _
"MacBookPro7,1" & @CRLF & _
"MacBookPro6,2" & @CRLF & _
"MacBookPro6,1" & @CRLF & _
"MacBookPro5,5" & @CRLF & _
"MacBookPro5,4" & @CRLF & _
"MacBookPro5,3" & @CRLF & _
"MacBookPro5,2" & @CRLF & _
"MacBookPro5,1" & @CRLF & _
"MacBookPro4,1" & @CRLF & _
"MacBookPro3,1" & @CRLF & _
"MacBookPro2,2" & @CRLF & _
"MacBookPro2,1" & @CRLF & _
"MacBookPro1,2" & @CRLF & _
"MacBookPro1,1" & @CRLF & _
"" & @CRLF & _
"https://support.apple.com/en-us/HT201894" & @CRLF & _
"" & @CRLF & _
"Supported:" & @CRLF & _
"Macmini8,1" & @CRLF & _
"Macmini7,1" & @CRLF & _
"Macmini6,2" & @CRLF & _
"Macmini6,1" & @CRLF & _
"" & @CRLF & _
"Unsupported:" & @CRLF & _
"Macmini5,3" & @CRLF & _
"Macmini5,2" & @CRLF & _
"Macmini5,1" & @CRLF & _
"Macmini4,1" & @CRLF & _
"Macmini3,1" & @CRLF & _
"Macmini2,1" & @CRLF & _
"Macmini1,1" & @CRLF & _
"" & @CRLF & _
"https://support.apple.com/en-us/HT201634" & @CRLF & _
"" & @CRLF & _
"Supported:" & @CRLF & _
"iMac20,2" & @CRLF & _
"iMac20,1" & @CRLF & _
"iMac19,2" & @CRLF & _
"iMac19,1" & @CRLF & _
"iMac18,3" & @CRLF & _
"iMac18,2" & @CRLF & _
"iMac18,1" & @CRLF & _
"iMac17,1" & @CRLF & _
"iMac16,2" & @CRLF & _
"iMac16,1" & @CRLF & _
"iMac15,1" & @CRLF & _
"iMac14,4" & @CRLF & _
"iMac14,3" & @CRLF & _
"iMac14,2" & @CRLF & _
"iMac14,1" & @CRLF & _
"iMac13,2" & @CRLF & _
"iMac13,1" & @CRLF & _
"" & @CRLF & _
"Unsupported:" & @CRLF & _
"iMac12,2" & @CRLF & _
"iMac12,1" & @CRLF & _
"iMac11,3" & @CRLF & _
"iMac11,2" & @CRLF & _
"iMac11,1" & @CRLF & _
"iMac10,1" & @CRLF & _
"iMac9,1" & @CRLF & _
"iMac8,1" & @CRLF & _
"iMac7,1" & @CRLF & _
"iMac6,1" & @CRLF & _
"iMac5,2" & @CRLF & _
"iMac5,1" & @CRLF & _
"iMac4,2" & @CRLF & _
"iMac4,1" & @CRLF & _
"iMac,1" & @CRLF & _
"" & @CRLF & _
"https://support.apple.com/en-us/HT210222" & @CRLF & _
"" & @CRLF & _
"Supported:" & @CRLF & _
"iMacPro1,1" & @CRLF & _
"" & @CRLF & _
"https://support.apple.com/en-us/HT202888" & @CRLF & _
"" & @CRLF & _
"Supported:" & @CRLF & _
"MacPro7,1" & @CRLF & _
"MacPro6,1" & @CRLF & _
"" & @CRLF & _
"Unsupported:" & @CRLF & _
"MacPro5,1" & @CRLF & _
"MacPro4,1" & @CRLF & _
"MacPro3,1" & @CRLF & _
"MacPro2,1" & @CRLF & _
"MacPro1,1"
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