Ваш регэксп работает.
Но последняя его часть соответствует в том числе и пустой строке, которую он успешно находит и выводит в качестве результата.
var str=' \n <\n /</,\n <\n <\n "!",\n "sdfs">,\n ';
var reg=/<|>|"(([^\\"]|\\.)*)"|\$(\w*)|(\w+)/gim;
alert( reg.exec(str) );