Owszem: ^ - znak początku linii $ znak końca lini. Wzór na to co chcesz osiągnąć:
^\d+ \d+ \d+$
Normalnie znaki te oznaczają początek i koniec całego inputu, ale jak ustawisz flage multiline to będą łapały poczatek i koniec każdej linii.
Sprawdziłem w Javie ta flaga to Pattern.MULTILINE. Gdybyś nie wiedział \d to [0-9]. Dodatkowo gwiazdka oznacza 0 lub więcej. Czyli Twój pattern złapie pusty string, jedną liczbe i dwie liczby. W tym przypadku użyj + czyli 1 lub wiecej.
Dodatkowo polecam gorąco stronke https://regex101.com/. Można sobie klepać regexy i widzieć od razu jak działają. Dodatkowo można najechać na każdy znak wzoru, żeby zobaczyć co oznacza. O ile znasz choć troszke angielski to polecam.
Edit: Testowałem to dla pewności. Jakbyś chciał to tu masz cały kod:
Pattern pattern = Pattern.compile("^\\d+ \\d+ \\d+$", Pattern.MULTILINE);
String intput = "123 43 2\n4 234234 124344 44\n1 2 3\n12331223\n23 3";
Matcher matcher = pattern.matcher(intput);
while(matcher.find()){
System.out.println(matcher.group());
}