What's interesting is that it's actually not special syntax - at least, it's not special syntax for regex usage. The syntax obj[arg, arg, arg] looks weird because in most languages things that look like subscripts can't have multiple arguments, but it's just sugar for the method call obj.[](arg, arg, arg), which is pretty mundane. The semantics are just the semantics of that method on the class of 'obj', and can therefore be defined in library or user code.
Note I'm not defending the specific use of it here to write odd-looking regex code - I just think it's interesting that the language is flexible enough to allow that kind of usage without special-casing it.
Raganwald wrote a blog post [1] along similar lines, arguing that it's a core part of Ruby's language philosophy, about this snippet:
(1..100).inject(&:+)
[1]: http://weblog.raganwald.com/2008/02/1100inject.html