obter resultados exclusivos de correspondência de regex (sem usar mapas ou listas)

Existe uma maneira de obter apenas as correspondências exclusivas? sem usar uma lista ou um mapa após a correspondência, quero que a saída do combinador seja única imediatamente.

Entrada / saída da amostra:

String input = "This is a question from [userName] about finding unique regex matches for [inputString] without using any lists or maps. -[userName].";
Pattern pattern = Pattern.compile("\\[[^\\[\\]]*\\]");
Matcher matcher = pattern.matcher(rawText);
while (matcher.find()) {
    String tokenName = matcher.group(0);
    System.out.println(tokenName);
}

Isso produzirá o seguinte:

[userName]
[inputString]
[userName]

Mas eu quero que o resultado seja o seguinte:

[userName]
[inputString]