Почему захват именованных групп в Ruby приводит к ошибкам «неопределенная локальная переменная или метод»?

У меня проблемы с именованными перехватами в регулярных выражениях в Ruby 2.0. У меня есть строковая переменная и интерполированное регулярное выражение:

str = "hello world"
re = /\w+/
/(?<greeting>#{re})/ =~ str
greeting

Возникает следующее исключение:

prova.rb: 4: в<main>': undefined local variable or methodприветствие для главного: Object (NameError)
оболочка вернулась 1

Однако интерполированное выражение работает без именованных захватов. Например:

/(#{re})/ =~ str
$1
# => "hello"

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

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