Then you don't need to store multiple items, just the last match in - for examle - a global variable. (The round brackets arround [A-Z]{2,3} capture the matched letters for the back reference $regml(1) )

Code:
; example for an on text event
on *:text:*:#YOURCHAN: {

  ; if the text contains -xx- or -xxx-  (each x is a letter, case insensitive)
  ; and the maching letters are not marked for skip
  var %reg = /-([A-Z]{2,3})-/i
  if ($regex($1-,%reg)) && (%skip != $regml(1)) { 

    ; mark the (new) match for skip
    set -e %skip $regml(1)

    ; and execute some commands
    ; - YOUR CODE HERE -

  }
}