I find it easier to use single-character groups than backslashes - so I would write this as `/([#][{])(.*?)([}])/`, which should get the interpolation highlighted.

I'd also recommend pushing a `:ruby` state, since to be entirely correct we have to balance braces.  Something like

``` ruby
rule /[#][{]/ do
  # ...
  push :ruby
end

state :ruby do
  rule(/[{]/) { delegate ruby; push }
  rule(/[}]/) { delegate ruby; pop! }
  rule(/[^{}]+/) { delegate ruby }
end
```