Ah, now I see your isse; the difference you describe is caused by the parser, not the processing routine itself.

To demonstrate this, I increased the length of the text-to-parse and the No. of repetitions, and added an initial "dummy loop" to take the "ressources allocation" into account:
Code:
alias SpeedTest2 {
  var %reps = 100000

  ; dummy run to prevent the allocation issue
  var %cnt = 1
  while (%cnt <= %reps) {
    var %ex = $iif($true,yes,no)
    inc %cnt
  }
  echo -a ----

  var %ticks = $ticks, %cnt = 1
  while (%cnt <= %reps) {
    var %ex = $iif(t isin r.t.s.u.ma.ne.pi.wo,yes,no)
    inc %cnt
  }
  echo -a 46 (text): $calc($ticks - %ticks)

  var %ticks = $ticks, %cnt = 1
  while (%cnt <= %reps) {
    var %ex = $iif(t isin r t s u ma ne pi wo,yes,no)
    inc %cnt
  }
  echo -a 32 (text): $calc($ticks - %ticks)

  var %ticks = $ticks, %cnt = 1, %string = r.t.s.u.ma.ne.pi.wo
  while (%cnt <= %reps) {
    var %ex = $iif(t isin %string,yes,no)
    inc %cnt
  }
  echo -a 46 (%var): $calc($ticks - %ticks)

  var %ticks = $ticks, %cnt = 1, %string = r t s u ma ne pi wo
  while (%cnt <= %reps) {
    var %ex = $iif(t isin %string,yes,no)
    inc %cnt
  }
  echo -a 32 (%var): $calc($ticks - %ticks)
}


----
46 (text): 5625
32 (text): 6922
46 (%var): 5640
32 (%var): 5610

isin or istok or whatever - to my limited knowledge mIRC parses the code mainly along commas, brackets and of course - spaces smile