Regex разделяется на перекрывающиеся строки

Я изучаю возможности регулярных выражений, поэтому мне просто интересно, возможно ли что-то подобное:

public class StringSplit {
    public static void main(String args[]) {
        System.out.println(
            java.util.Arrays.deepToString(
                "12345".split(INSERT_REGEX_HERE)
            )
        ); // prints "[12, 23, 34, 45]"
    }
}

Если возможно, то просто предоставьте регулярное выражение (и предварительно объясните, как это работает).

Если это возможно только в некоторых разновидностях регулярных выражений, отличных от Java, не стесняйтесь предоставлять их также.

Если это невозможно, объясните, пожалуйста, почему.

БОНУСНЫЙ ВОПРОС

Тот же вопрос, но сfind() цикл вместоsplit:

    Matcher m = Pattern.compile(BONUS_REGEX).matcher("12345");
    while (m.find()) {
        System.out.println(m.group());
    } // prints "12", "23", "34", "45"

Обратите внимание, что у меня не так много конкретных задач, которые нужно выполнить тем или иным способом, а скорее я хочу понимать регулярные выражения. Мне не нужен код, который делает то, что я хочу; Мне нужны регулярные выражения, если они существуют, которые я могу использовать в приведенном выше коде для выполнения задачи (или регулярные выражения в других вариантах, которые работают с «прямым переводом» кода на другой язык).

И если они не существуют, я хотел бы получить хорошее и четкое объяснение, почему.

Ответы на вопрос(5)

Ваш ответ на вопрос