Arhitector,
<script>
var str = 'Оооочень большая строка текста, [color=красный]выделенный текст[/color], еще всякий текст текст текст [color=зелёный]еще выделенный текст[/color]! Ну и тд.',
reg = /\[([^=]+)=([^\]]+)\]([\S\s]*?)\[\/\1\]/mig,
array_action = [], n = 1;
str = str.replace(reg, function(a,b,c,d,e) {
var index_start_action = e - n;
var index_end_action = index_start_action + d.length
var color = c;
var obj = {index_start_action : index_start_action, index_end_action : index_end_action, color : color};
array_action.push(obj);
n += a.length - d.length;
return d
});
document.write(str + "<br>" + JSON.stringify(array_action, null, 4))
</script>