Correspondendo uma string várias vezes usando regex em Java

Estou tendo alguns problemas em fazer o seguinte trabalho de regex. Eu gostaria da seguinte string:

"Please enter your name here"

para resultar em uma matriz com os seguintes elementos:

'please enter', 'enter your', 'your name', 'name here'

Atualmente, estou usando o seguinte padrão e, em seguida, criando um correspondente e iterando da seguinte maneira:

Pattern word = Pattern.compile("[\w]+ [\w]+");
Matcher m = word.matcher("Please enter your name here");

while (m.find()) {
    wordList.add(m.group());
}

Mas o resultado que estou recebendo é:

'please enter', 'your name'

O que estou fazendo de errado? (P., eu verifiquei o mesmo regex em regexpal.com e tive o mesmo problema). Parece que a mesma palavra não será correspondida duas vezes. O que posso fazer para alcançar o resultado que quero?

Obrigado.

---------------------------------

EDITAR: Obrigado por todas as sugestões! Eu acabei fazendo isso (porque acrescenta flexibilidade em poder especificar facilmente o número de "n-grams"):

Integer nGrams = 2;
String patternTpl = "\\b[\\w']+\\b";
String concatString = "what is your age? please enter your name."
for (int i = 0; i < nGrams; i++) {
    // Create pattern.
    String pattern = patternTpl;
    for (int j = 0; j < i; j++) {
        pattern = pattern + " " + patternTpl;
    }
    pattern = "(?=(" + pattern + "))";
    Pattern word = Pattern.compile(pattern);
    Matcher m = word.matcher(concatString);

    // Iterate over all words and populate wordList
    while (m.find()) {
        wordList.add(m.group(1));
    }
}

Isto resulta em:

Pattern: 
(?=(\b[\w']+\b)) // In the first iteration
(?=(\b[\w']+\b \b[\w']+\b)) // In the second iteration

Array:
[what, is, your, age, please, enter, your, name, what is, is your, your age, please enter, enter your, your name]

Nota: Obteve o padrão a partir da seguinte resposta principal:Regex Java pular partidas

questionAnswers(4)

yourAnswerToTheQuestion