Вы можете получить смещения от $~
в Ruby, например:
"foobarbaz".scan(/[oa]+/) { p [$~.begin(0), $~.end(0), $~.to_s] }
печать
[1, 3, "oo"]
[4, 5, "a"]
[7, 8, "a"]
На основании этого вы можете написать цикл, который генерирует те же смещения, что и ваш PHP-код.