$re = '/(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$)/m';
$str = 'Model information: https://support.apple.com/en-us/HT210222
Published Date: February 01, 2021
Validation: https://regex101.com/r/p5r9WT/3/
This regex is exact. No new models are supported.
(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
pattern matches:
https://support.apple.com/en-us/HT201608
Supported:
MacBook10,1
MacBook9,1
MacBook8,1
Unsupported:
MacBook7,1
MacBook6,1
MacBook5,2
MacBook5,1
MacBook4,1
MacBook3,1
MacBook2,1
MacBook1,1
https://support.apple.com/en-us/HT201862
Supported:
MacBookAir9,1
MacBookAir8,2
MacBookAir8,1
MacBookAir7,2
MacBookAir7,2
MacBookAir7,1
MacBookAir6,2
MacBookAir6,1
MacBookAir6,2
MacBookAir6,1
MacBookAir5,2
MacBookAir5,1
Unsupported:
MacBookAir4,2
MacBookAir4,1
MacBookAir3,2
MacBookAir3,1
MacBookAir2,1
MacBookAir1,1
https://support.apple.com/en-us/HT201300
Supported:
MacBookPro16,3
MacBookPro16,2
MacBookPro16,1
MacBookPro15,4
MacBookPro15,3
MacBookPro15,2
MacBookPro15,1
MacBookPro14,3
MacBookPro14,2
MacBookPro14,1
MacBookPro13,3
MacBookPro13,2
MacBookPro13,1
MacBookPro11,5
MacBookPro11,4
MacBookPro12,1
MacBookPro11,3
MacBookPro11,2
MacBookPro11,1
MacBookPro10,1
MacBookPro11,1
MacBookPro10,2
MacBookPro10,1
MacBookPro9,2
MacBookPro9,1
Unsupported:
MacBookPro8,3
MacBookPro8,2
MacBookPro8,1
MacBookPro7,1
MacBookPro6,2
MacBookPro6,1
MacBookPro5,5
MacBookPro5,4
MacBookPro5,3
MacBookPro5,2
MacBookPro5,1
MacBookPro4,1
MacBookPro3,1
MacBookPro2,2
MacBookPro2,1
MacBookPro1,2
MacBookPro1,1
https://support.apple.com/en-us/HT201894
Supported:
Macmini8,1
Macmini7,1
Macmini6,2
Macmini6,1
Unsupported:
Macmini5,3
Macmini5,2
Macmini5,1
Macmini4,1
Macmini3,1
Macmini2,1
Macmini1,1
https://support.apple.com/en-us/HT201634
Supported:
iMac20,2
iMac20,1
iMac19,2
iMac19,1
iMac18,3
iMac18,2
iMac18,1
iMac17,1
iMac16,2
iMac16,1
iMac15,1
iMac14,4
iMac14,3
iMac14,2
iMac14,1
iMac13,2
iMac13,1
Unsupported:
iMac12,2
iMac12,1
iMac11,3
iMac11,2
iMac11,1
iMac10,1
iMac9,1
iMac8,1
iMac7,1
iMac6,1
iMac5,2
iMac5,1
iMac4,2
iMac4,1
iMac,1
https://support.apple.com/en-us/HT210222
Supported:
iMacPro1,1
https://support.apple.com/en-us/HT202888
Supported:
MacPro7,1
MacPro6,1
Unsupported:
MacPro5,1
MacPro4,1
MacPro3,1
MacPro2,1
MacPro1,1';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
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 PHP, please visit: http://php.net/manual/en/ref.pcre.php