emptinessandform,
не знаю что делает \1 - может кто пояснит, но я бы предложил такой вариант, найдёт больше тегов чем, вариант из учебника.
var reg = new RegExp('<(((["\'])[^"\']*\\3)|[^>])*?>', 'g');//ищет либо не > или что-то в любых кавычках 'test'
var good = '...<a test="<>" href="#" >... <b>...';
var bad = "<tag a=b a=b a=b a=b a=b a=b a=b a=b\
a=b a=b a=b a=b a=b a=b a=b a=b a=b a=b a=b a=b a=b";
alert( good.match(reg) ); // <a test="<>" href="#">, <b>
alert( bad.match(reg) ); // null (нет результатов, быстро)