Вы, кажется, думаете, что, поскольку регулярное выражение будет соответствовать только 3 буквенным совпадениям, механизм регулярных выражений будет смотреть на вашу строку группами по 3 буквы, и поэтому начало совпадений может быть кратным 3. Это неправильное представление .
Движок регулярных выражений будет всегда выдвигаться на 1 букву за раз и проверять, соответствует ли он шаблону.
Ваша программа выдает выходные данные 6 и 11, что правильно. Я поместил |
в индекс 6 и 11. Индекс 0 находится перед первым символом. Как видите, они в начале матчей.
12 0x |0x12 |0Xf 0xg