While discussing why $left($str(x,4000) $str(y,4000),4000) was ignoring the $str(y,4000) part, I found this crash:
//alias ^ echo -a $!len($1-) | noop $^($str(x,4150),$str(y,X)) | alias ^
where X can probably be 1 and it would still crash, however since I believe it depends on the current memory usage/state, you have more chance of reproducing with a bigger X, usually 250 does it, but certainly the maximum 4150 should do it.
I was arguing prior testing that $1- would probably be truncated to 4150 characters, however in some cases the /echo will be displayed and we can see the 'correct sum' value of 4150+X+1 (+1 for the space added by $1-).
I am still looking for an explanation as to why mIRC, internally, is not throwing an error for when computing the parameter '$str(x,4000) $str(y,4000)' in the first example.