Я недавно наткнулся на это, пытаясь использовать рекурсивное регулярное выражение:
'--01-0-01'.scan /0|1|-(\g<0>)(\g<0>)/
#=> [['0', '-0-01']]
, где кажется, что первый рекурсивный шаблон совпал глубже, чем ожидалось, в то время как второй работал нормально. Это подтверждается regex101 , который дает правильные группы ('-01'
и '-0-01'
). Это странная особенность ruby или ошибочная реализация?
Кстати, это произошло при попытке решить этот код вопроса о гольфе.