Match the permutations! Your challenge is to create a regex that matches every string permutation of itself, and nothing else. The match must also be case-sensitive.

So, for example, if your regex is:

ABC


It should match (and only match) these strings:

ABC
ACB
BAC
BCA
CAB
CBA


It shouldn't match things like:

AABC (contains an extra A)
ABCD (contains an extra D)
AC   (no B)
AAA  (no B and C, extra 2 A's)
abc  (case-sensitive)


Rules:


You are allowed to use any flavour of regex you like.
Standard loopholes apply.
You must have at least two different characters in your code. That means solutions like 1 are invalid.
The regex should contain only printable ASCII, and nothing else.
JavaScript, 64 57 bytes
4 bytes removed thanks to Martin Ender.
^(?!.*([^])(.*\1){3}]?)[$$[-^?!!.'''-*11{33}5577\\-]{57}$

Try it here.
Explanations (outdated)
^                                  # Beginning of the string.
(?!.*                              # Match only the strings that don't contain...
  (.)(.*\1){4}                     #     5 occurrences of the same character.
  [^1]?[^1]?                       #     Something that doesn't matter.
)
[]zzz^(?!!!.**[)\\1{{44}}666]{64}  # 64 occurrences of these 16 characters.
                                   # Some are duplicated to make sure the regex
                                   # contains 4 occurrences of each character.
\z                                 # End of the string.