obtenga resultados únicos de comparación de expresiones regulares (sin usar mapas o listas)

¿Hay una manera de obtener sólo las coincidencias únicas? sin usar una lista o un mapa después de la coincidencia, quiero que la salida del emparejador sea única de inmediato.

Muestra de entrada / salida:

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);
}

Esto dará salida a lo siguiente:

[userName]
[inputString]
[userName]

Pero quiero que salga lo siguiente:

[userName]
[inputString]

Respuestas a la pregunta(1)

Su respuesta a la pregunta