semplice java regex throwing illegalstateexception

Sto cercando di fare un rapido controllo di sanità mentale … e il suo fallimento. Ecco il mio codice –

import java.util.regex.*; public class Tester { public static void main(String[] args) { String s = "a"; Pattern p = Pattern.compile("^(a)$"); Matcher m = p.matcher(s); System.out.println("group 1: " +m.group(1)); } } 

E quello che mi aspetterei è vedere il group 1: a . Ma invece ottengo un IllegalStateException: no match found e non ho idea del perché.

Modifica: cerco anche di stampare groupCount() e dice che c’è 1.