You do need $+() here. $() doesn't concatenate anything, it's just there to tell mirc to evaluate the matchtext. For example, it's obvious that
//echo -a $chr(58),W markov
won't work, you need $chr(58) $+ W markov or $+($chr(58),W markov). Similarly, the event should be:
on *:text:$($chr(58) $+ W markov):#:{ }
or
on *:text:$($+($chr(58),W markov)):#:{ }