Java - melhor maneira de pegar todas as seqüências de caracteres entre duas seqüências de caracteres? (regex?)

Esta questão tem me incomodado há muito tempo, mas essencialmente eu estou procurando a maneira mais eficiente de pegar todas as Strings entre duas Strings.

A maneira que eu tenho feito isso por muitos meses agora é através do uso de um monte de índices temporários, strings, substrings, e é muito confuso. (Por que Java não tem um método nativo comoString substring(String start, String end)?

Digamos que eu tenha uma string:

abcabc [pattern1]foo[pattern2] abcdefg [pattern1]bar[pattern2] morestuff

O objetivo final seria produzirfoo ebar. (E mais tarde para ser adicionado em um JList)

Eu tenho tentado incorporar o regex em.split() mas não foram bem sucedidos. Eu tentei a sintaxe usando*'areia.mas eu não acho que é bem o que a minha intenção é especialmente desde.split() leva apenas um argumento para dividir.

Caso contrário, acho que outra maneira é usar as classes Pattern e Matcher? Mas estou muito confuso no procedimento apropriado.

questionAnswers(3)

yourAnswerToTheQuestion