Skip to content

Instantly share code, notes, and snippets.

@talkingmoose
Last active November 10, 2025 14:37
Show Gist options
  • Select an option

  • Save talkingmoose/3340d122ffd6b4fccb5f1319b7067f73 to your computer and use it in GitHub Desktop.

Select an option

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: November 10, 2025
Verification: https://regex101.com/r/YXAchM/6
1) Exact regex — Matches major model identifier numbers based on Apple's knowledge base article (more accurate):
^Mac((BookPro1(6,[124]|[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,[124]|[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
@smaddock
Copy link

I believe according to the referenced info from Apple, the MacBookPro16,3 is unsupported.

@sdicosta
Copy link

@smaddock This is what I understand too.

MacBookPro16,3 Should be

  • MacBook Pro "Core i5" 1.4 13" 2020 2 TB 3
  • MacBook Pro "Core i7" 1.7 13" 2020 2 TB 3

That According to https://www.apple.com/os/macos/
Should be NOT supported

@talkingmoose
Copy link
Author

Thanks for the catch! Updated.

@jlehikoinen
Copy link

Thanks for the regex once again! There's still the "MacBookPro16,3" entry on the line 49 under "Supported" that might cause some confusion.

@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! 👍

@sdpalmer
Copy link

sdpalmer commented Nov 8, 2025

@talkingmoose I just double-checked the two main overall full regex via regex101.com and they are still catching the MacBookPro16,3 as supported.

You currently have for the full regex:

^Mac((BookPro1(6,[1-4]|[78],\d)|(1[3-6]|BookAir10|mini9|Pro7),\d+))|iMac2[01],\d+$
^Mac((BookPro1(6,[1-4]|[7-9],\d)|(1[3-9]|BookAir10|mini9|Pro7),\d+))|iMac2[01],\d+$

For the MacBookPro specific regex you have:
^Mac((BookPro1(6,[124]|[7-9],\d))|1(4,([5679]|10)|5,([36-9]|1[01])|6,[15-8]))$

So I am thinking the full regex should be the following??

^Mac((BookPro1(6,[124]|[78],\d)|(1[3-6]|BookAir10|mini9|Pro7),\d+))|iMac2[01],\d+$
^Mac((BookPro1(6,[124]|[7-9],\d)|(1[3-9]|BookAir10|mini9|Pro7),\d+))|iMac2[01],\d+$

@talkingmoose
Copy link
Author

@sdpalmer Thanks for catching! Look like I had the general regex at the top but hadn't updated it lower down. The two are updated now.

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