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. smile

If the goal is to message any changes in the modes iRmN, ignoring changes of other modes:
Code:
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 smirk