What about .jpeg and .JPEG as well? The three-character versions only came into use because of the old broken DOS filesystem that only supported three-character extensions.
I have a little script called "mved" that makes it trivial to mass-rename files, e.g. "mved \*.jpeg \*.jpg" shortens the extensions. It supports multiple wildcards also, and can create directories where needed. For for example if I have a bunch of magazine PDFs called for example "Your Hobby - Sep 2019.pdf", I can say:
$ mved '* - * *.pdf' 'Your Hobby/\3/\3-\2 Your Hobby.pdf'
to create the year subdirectory and rename the files to put the year and month first in those directories. I need to create a special substitution to match month names and convert to 2-digit month numbers.
mved used to be a Bash script, but as it grew more difficult to handle all the possible magic characters I rewrote it in Ruby (a standard or easy install on all systems I use). I have this sym-linked as ~/bin/mved:
Regardless of all this, I want my filesystem to store what I tell it to store, not to munge or reject a filename I choose to use. Unix filesystems reject only two codepoints: ASCII nul, and forward-slash. Everything else is preserved.
It is the job of a shell's wildcard expansion to do case-insensitive matching, if necessary.