Есть строка String str. Код
String[] result = new String[str.length() / 2];
            result = str.split("(?<=\\G.{2})");
разбивает строку на массив String[] по 2 символа (для упрощения взял просто строку с чётным количеством символов - это не важно в данном случае). Не могу разобраться как работает этот самый "(?<=\\G.{2})". Посоветуйте статью или ещё что-нибудь, где будет нужная инфа.