Доброго времени суток.
Есть текст:
	
	| 
		 Код: 
	 | 
	<td>Наличие<br>Рис фасованный: 5%<br>Гречка весовая: 36%<br>Морковка гнилая: 15%<br>Итого.....  | 
	
соответственно, хочу вычленить то что между тегами 
<br> и заканчивающееся на знак 
%
но получаю:
либо последний извлеченный элемент 
Морковка гнилая: 15:
var str='<td>Наличие<br>Рис фасованный: 5%<br>Гречка весовая: 36%<br>Морковка гнилая: 15%<br>Итого.....';
alert(str.match(/(?:(?:<br>)(.*?)%)+/i));
либо, всю строку начиная с 
<br>Рис и заканчивая 
Морковка гнилая: 15%:
var str='<td>Наличие<br>Рис фасованный: 5%<br>Гречка весовая: 36%<br>Морковка гнилая: 15%<br>Итого.....';
alert(str.match(/((?:(?:<br>)(?:.*?)%)+)/i));
Подскажите пожалуйста, как правильно составить данное рег. выражение, с учетом того, что количество искомых фраз может разниться?
З.Ы.: можно, конечно, сделать так:
var str='<td>Наличие<br>Рис фасованный: 5%<br>Гречка весовая: 36%<br>Морковка гнилая: 15%<br>Итого.....';
alert(str.split('<br>'));
но тогда в результат попадает лишний мусор, которого хотелось бы избежать
З.Ы.Ы.: естественно - можно использовать модификатор 
g:
var str='<td>Наличие<br>Рис фасованный: 5%<br>Гречка весовая: 36%<br>Морковка гнилая: 15%<br>Итого.....';
alert(str.match(/(?:(?:<br>)(.*?)%)/gi));
но проблема в том, что далее идет аналогичная конструкция, только получающая данные уже иначе и соответственно вместе они не работают при установленном параметре 
g т.к. они не чередуются а идут друг за другом
к тому же, при использовании 
g, в тексте останутся 
<br> и 
%