Skip to content

Instantly share code, notes, and snippets.

@talkingmoose
Last active September 29, 2025 12:09
Show Gist options
  • Save talkingmoose/3340d122ffd6b4fccb5f1319b7067f73 to your computer and use it in GitHub Desktop.
Save talkingmoose/3340d122ffd6b4fccb5f1319b7067f73 to your computer and use it in GitHub Desktop.
Regex looks for all Mac models compatible with macOS 26 Tahoe. May not be up-to-date with newly released models.
https://support.apple.com/en-us/122867
Published Date: September 15, 2025
Updated: September 24, 2025
Verification: https://regex101.com/r/YXAchM/5
1) Exact regex — Matches major model identifier numbers based on Apple's knowledge base article (more accurate):
^Mac((BookPro1(6,[1-4]|[78],\d)|(1[3-6]|BookAir10|mini9|Pro7),\d+))|iMac2[01],\d+$
2) Current or higher regex — Matches model identifiers based on Apple's knowledge base article and may match higher versions before this regex is updated (more future-proof).
^Mac((BookPro1(6,[1-4]|[7-9],\d)|(1[3-9]|BookAir10|mini9|Pro7),\d+))|iMac2[01],\d+$
Current or higher regexes aren't available for some models where Apple has used the same model identifier schema for multiple models.
Either regex will match any of the supported following model identifiers:
MacBook Pro
https://support.apple.com/en-us/108052
Exact regex: ^Mac((BookPro1(6,[124]|[7-9],\d))|1(4,([5679]|10)|5,([36-9]|1[01])|6,[15-8]))$
Current or higher regex: Not available
Supported:
Mac16,8
Mac16,7
Mac16,6
Mac16,5
Mac16,1
Mac15,11
Mac15,10
Mac15,9
Mac15,8
Mac15,7
Mac15,6
Mac15,3
Mac14,10
Mac14,9
Mac14,7
Mac14,6
Mac14,5
MacBookPro18,4
MacBookPro18,3
MacBookPro18,2
MacBookPro18,1
MacBookPro17,1
MacBookPro16,4
MacBookPro16,2
MacBookPro16,1
Unsupported:
MacBookPro16,3
MacBookPro15,4
MacBookPro15,3
MacBookPro15,2
MacBookPro15,1
MacBookPro14,3
MacBookPro14,2
MacBookPro14,1
MacBookPro13,3
MacBookPro13,2
MacBookPro13,1
MacBookPro12,1
MacBookPro11,5
MacBookPro11,4
MacBookPro11,3
MacBookPro11,2
MacBookPro11,1
MacBookPro10,2
MacBookPro10,1
MacBookPro9,2
MacBookPro9,1
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
---------------------------------------------------
MacBook Air
https://support.apple.com/en-us/102869
Exact regex: ^Mac(1([56],1[23]|4,(2|15))|BookAir10,1)$
Current or higher regex: Not available
Supported:
Mac16,13
Mac16,12
Mac15,13
Mac15,12
Mac14,15
Mac14,2
MacBookAir10,1
Unsupported:
MacBookAir9,1
MacBookAir8,2
MacBookAir8,1
MacBookAir7,2
MacBookAir7,2
MacBookAir7,1
MacBookAir6,2
MacBookAir6,1
MacBookAir5,2
MacBookAir5,1
MacBookAir4,2
MacBookAir4,1
MacBookAir3,2
MacBookAir3,1
MacBookAir2,1
MacBookAir1,1
---------------------------------------------------
MacBook
https://support.apple.com/en-us/103257
Supported:
None.
Unsupported:
MacBook10,1
MacBook9,1
MacBook8,1
MacBook7,1
MacBook6,1
MacBook5,2
MacBook5,1
MacBook4,1
MacBook3,1
MacBook2,1
MacBook1,1
---------------------------------------------------
iMac Pro
https://support.apple.com/en-us/HT210222
Supported
None.
Unsupported::
iMacPro1,1
---------------------------------------------------
iMac
https://support.apple.com/en-us/108054
Exact regex: ^Mac1((6,[23]|5,[45]))|iMac(2[01]),[12]$
Current or higher regex: Not available
Supported:
Mac16,3
Mac16,2
Mac15,5
Mac15,4
iMac21,2
iMac21,1
iMac20,2
iMac20,1
Unsupported:
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
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
---------------------------------------------------
Mac mini
https://support.apple.com/en-us/102852
Exact regex: ^Mac(1((6,1[015])|(4,(3|12)))|mini9,1)$
Current or higher regex: Not available
Supported:
Mac16,11
Mac16,10
Mac14,3
Mac14,12
Macmini9,1
Unsupported:
Macmini8,1
Macmini7,1
Macmini6,2
Macmini6,1
Macmini5,3
Macmini5,2
Macmini5,1
Macmini4,1
Macmini3,1
Macmini2,1
Macmini1,1
---------------------------------------------------
Mac Studio
https://support.apple.com/en-us/102231
Exact regex: ^Mac1((3,[12])|(4,1(3|4))|5,14|6,9)$
Current or higher regex: Not available
Supported:
Mac16,9
Mac15,14
Mac14,14
Mac14,13
Mac13,2
Mac13,1
---------------------------------------------------
Mac Pro
https://support.apple.com/en-us/102887
Exact regex: ^Mac(Pro7,\d|14,8)$
Current or higher regex: Not available
Supported:
Mac14,8
MacPro7,1
Unsupported:
MacPro6,1
MacPro5,1
MacPro4,1
MacPro3,1
MacPro2,1
MacPro1,1
@damacguy
Copy link

Why scope to supported machines when we don't know (officially) what machines are coming and will need to be added, but we do know what machines aren't supported. Yes, its a long list, but its an unchanging list.

@talkingmoose
Copy link
Author

@damacguy The list will get easier and easier to define and the regex shorter and shorter as Apple moves all computer model identifiers to the "MacX,X" format.

I'm of the philosophy that it's easier and better to identify something by explicit characteristics that exist rather than identify something by characteristics that don't exist.

By "scope", I'm assuming you mean Jamf Pro. If so, you can flip the matches by using "does not match regex". Also, I choose to scope "Target" to a computers or devices that I want in a certain state and then set "Exclusions" to computers or devices that are already in the state I want.

Many ways to skin a cat. The cat won't be happy either way.

@damacguy
Copy link

damacguy commented Sep 26, 2025

Why scope to supported machines when we don't know (officially) what machines are coming and will need to be added, but we do know what machines aren't supported. Yes, its a long list, but its an unchanging list.

I believe this REGEX should cover all Tahoe non-compatible model identifiers...
^(MacBook([1-9]|1[0-2]),[0-9]+|MacBookAir([1-9]|1[01]),[0-9]+|MacBookPro(1[0-5]|16,[235]),[0-9]+|iMac(1[0-9]|[4-9]),[0-9]+|Macmini[1-8],[0-9]+|MacPro[1-6],[0-9]+)$

@talkingmoose
Copy link
Author

@jlehikoinen Sorry for the later update, but I was waiting for Apple to update their supported page in case anything changed before Tahoe released. The regex should be current now.

@jlehikoinen
Copy link

Excellent! 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment