Como transformar a expressão regular em não gananciosa?

Estou usando jQuery. Eu tenho uma string com um bloco de caracteres especiais (início e fim). Quero pegar o texto desse bloco de caracteres especiais. Eu usei um objeto de expressão regular para encontrar seqüências de caracteres. Mas como posso dizer ao jQuery para encontrar vários resultados quando tiver dois caracteres especiais ou mais?

Meu HTML:

<div id="container">
    <div id="textcontainer">
     Cuộc chiến pháp lý giữa [|cơ thử|nghiệm|] thị trường [|test2|đây là test lần 2|] chứng khoán [|Mỹ|day la nuoc my|] và ngân hàng đầu tư quyền lực nhất Phố Wall mới chỉ bắt đầu.
    </div>
</div>

e meu código JavaScript:

$(document).ready(function() {
  var takedata = $("#textcontainer").text();
  var test = 'abcd adddb';
  var filterdata = takedata.match(/(\[.+\])/);

  alert(filterdata); 

  //end write js 
});

Meu resultado é:[| cgh | nghiệm |] thị trường [| test2 | eu là test lần 2 |] ch kng khoán [| Mỹ | day la nuoc my |] . Mas este não é o resultado que eu quero :(. Como obter [texto] para os tempos 1 e [demo] para os tempos 2?

Acabei de fazer meu trabalho depois de pesquisar informações na internet ^^. Eu faço um código como este:

var filterdata = takedata.match(/(\[.*?\])/g);
meu resultado é:[| nghiệm |], [| test2 | testây là test lần 2 |] isso está certo! mas eu realmente não entendo isso. Você pode me responder porque?

questionAnswers(3)

yourAnswerToTheQuestion