Oh I see why that's happening.
There's no option currently. Its related to how ^ is used to separate the parts even on the backend. The solution would be to make the code convert ^ to a different character that sorts early when the key is actually stored in the db (\n or \t are possible choices. Could even be some random ascii control character). So at some future point this extension could be fixed up, but I'm not planning to work on it in the near term (sorry, have other things to do).
Hacky work around would be to use look-alike characters e.g. [[category:blah|^𝟣𝟢𝟢^]] and [[category:blah|^𝟣^]], which looks very similar but should sort correctly.