import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Т2 {

    public static void main( String args[] ) {


        String text = "Крещение Руси произошло в 988 году! Не так ли?";
        String pattern = "(.*)(\\d+)(.*)";

        Pattern r = Pattern.compile(pattern);

        Matcher m = r.matcher(text);

        if (m.find()) {

            System.out.println("matches? " + m.matches());

            int gC = m.groupCount();

            System.out.println("groupCount: " + gC);
            for (int i = 0; i <= gC; i++) {
                System.out.println("group  " + i + ":   " + m.group(i));
            }


        } else {

            System.out.println("Ne sovpadaet!");
        }
    }
}
matches? true
groupCount: 3
group  0:   Крещение Руси произошло в 988 году! Не так ли?
group  1:   Крещение Руси произошло в 98
group  2:   8
group  3:    году! Не так ли?
Разобрал несколько примеров жадных, ленивых, супержадных. Вроде должен уже понять, но все никак. https://regex101.com/r/qG2hNx/1
Match        0-46	Крещение Руси произошло в 988 году! Не так ли?
Group1      0-28	Крещение Руси произошло в 98
Group2      28-29	8
Group3      29-46	 году! Не так ли?