Sorry, but this makes no sense at all, because it would even match M or MM or MMMMMMMM or in an unbelievable worst case |||||. Uuuh.

The | has no meaning between []. The chars/letters are alternatives, so you could also write:
Code:
(T|r|i|d|e|n|t|\||M|S|I|E){1,}
So, after looking into the original source codes of YUI 2 and 3 I would suggest to replace
Code:
else{a=c.match(/MSIE\s([^;]*)/);if(a&&a[1]){g.ie=e(a[1]);}
with
Code:
else{a=c.match(/MSIE ([^;]*)|Trident.*; rv:([0-9.]+)/);if(a&&(a[1]||a[2])){g.ie=e(a[1]||a[2]);}
The browser detection is very similar in both, YUI 2 and 3 and the above code is from YUI3 and then backminified by me.
untested, hope it works