Alexandroppolus, замечательно!
Tachyon, меня интересует, почему всё-таки нужно такое? Почему бы не использовать XML? Тогда не нужно так мучаться... И всё нормально работает... включая комментарии! И парсеры уже есть! (в браузере даже есть готовый класс DOMParser)
var code = `
<my-code>
<tag1 name1="value1" name2="value2" />
<tag1 name1="value1" name2="value2" />
</my-code>
`;
var parser = new DOMParser();
var doc = parser.parseFromString(code, "text/xml");
// дальше работа с иерархией разобранных элементов
console.log(doc);