Как сделать именованный захват в ruby

Я хочу назвать захват строки, полученной при сканировании. Как это сделать?

"555-333-7777".scan(/(\d{3})-(\d{3})-(\d{4})/).flatten #=> ["555", "333", "7777"]

Можно ли превратить это в так

{:area => "555", :city => "333", :local => "7777" }

или же

[["555","area"], [...]]

Я пытался

"555-333-7777".scan(/((?<area>)\d{3})-(\d{3})-(\d{4})/).flatten

но возвращается

[]