Image

вопрос про regexp

Как на JS с помощью объекта regexp получить массив всех совпадений?

var myregexp = /<item[^>]*>(.*?)<\/item>/ig;
var xmlData = "<item>fg1</item><item>fg2</item><item>fg3</item>";

var match = myregexp.exec(xmlData);
возвращает мне массив match = Array('<item>fg1</item>', 'fg1')

var match = xmlData.match(myregexp);
возвращает match = Array('<item>fg1</item>', '<item>fg2</item>', '<item>fg3</item>')

var match = RegExp.$1;
возвращает только "fg1"

а мне нужен Array('fg1', 'fg2', 'fg3')
как сделать?

и еще вопрос:
естли в переменную xmlData записать реальный xml-документ, загруженный через тот же XMLHttpRequest, то вышеприведенный паттерн вообще почему-то отказывается работать, ни одного совпадения не находится. Вне зависимости от использования /ig или /igm.