As if it doesn't recognize the regex group
That's exactly what's happening.
There's nothing wrong with your regex at all, but it's written in a PCRE or ERE dialect that find doesn't expect. If you tell find to interpret it as ERE, it will match as you intended:
# GNU find . -regextype posix-extended ! -regex ".*(jpeg|jpg|gif|pdf)+$" # macOS find . -E ! -regex ".*(jpeg|jpg|gif|pdf)+$"
It would also work just fine by default in Perl, Java, RE2, egrep, bash =~, awk, and a whole lot of other tools that also use PCRE or ERE.
However, it does not work in Emacs or BRE, which is what GNU and macOS find expect respectively.
Inian's solution works by rewriting your pattern from ERE style to Emacs style, where \(\|\) is used instead of (|) (as well as making other improvements to it).
tl;dr: Copy-pasting a regex from one tool to another is like copy-pasting a function from Java to C#. They look very similar and it may even work, but it's likely to require at least some tweaking.
.before the file extension.-namemethod is actually good and portable (-regexis not specified by POSIX, it's only an extension available in certain versions offind, e.g., GNUfind).