Hm, not exactly. It matches/returns:
"start of the string, possibly followed by a single plus char, followed by one
or more chars out of "iRmN", followed by no other chars (end of string)"
It matches/returns for example: mr / +m / +miR / +Ni / N
It won't match: +I / +R-m / -i / + / +mk somekey
Now I don't know what the OP
intended to match/return... Not all of the matched examples are possible values of $1- in "on mode", while some out of the unmatched examples are possible values.

If the goal is to message any changes in the modes iRmN, ignoring changes of other modes:
on *:mode:#: {
if ($me ison $_botchan) {
; remove from the first word of the mode string everything that is no char out of: iRmN+-
; if anything besides "+" and/or "-" remains: message the changes of the modes "iRmN" to $_botchan
var %m = $regsubex($1,/[^iRmN+-]/g,$null)
if ($remove(%m,+,-)) {
msg $_botchan $chan Modes: $replace($iif(($right(%m,1) isin +-),$left(%m,-1),%m),+-,-,-+,+) set by $nick
}
}
}
Edit: added part to remove leading/trailing mode prefixes if followed by no mode. I admit it's not pretty though 