Actually, looking at some of those numbers logically, they seem correct.

Assuming that + and - = cancel, and - and - = +
It also seems that mIRC takes the last extra minus sign and assumes it is the +- indicator on the last number (2 in this case).

$calc(1 -+-- 2) -> $calc(1 - -2) -> 3
$calc(1 -+- 2) -> $calc(1 - 2) -> -1

$calc(1 ++--++-- 2) -> $calc(1 + -2) -> -1 (wrong)
$calc(1 +++--++-- 2) -> $calc(1 ++ -2) -> $calc(1 + -2) -> -1

(It is hard to know the order of operations that mIRC uses with the extra + and -.

-genius_at_work