Is this expected behaviour? I haven't seen anything related to this
mentioned in the API docs...

irb(main):057:0> s = 'a::b:::c::::d'
=> "a::b:::c::::d"
irb(main):058:0> s.split(/:/)
=> ["a", "", "b", "", "", "c", "", "", "", "d"]			=> OK
irb(main):059:0> s.split(/:+/)
=> ["a", "b", "c", "d"]						=> OK
irb(main):060:0> s.split(/(:)+/)
=> ["a", ":", "b", ":", "c", ":", "d"]				=> ?
irb(main):061:0> s.split(/((:)+)/)
=> ["a", "::", ":", "b", ":::", ":", "c", "::::", ":", "d"]	=> ???
irb(main):062:0> s.split(/(:+)/)
=> ["a", "::", "b", ":::", "c", "::::", "d"]			=> ???

mortee