irb(main):001:0> "aabbcc".split(/bb/)
=> ["aa", "cc"]
irb(main):002:0> "aabbcc".split(/(bb)/)
=> ["aa", "bb", "cc"]
irb(main):003:0> "aabbcc".split(/bb(c)?/)
=> ["aa", "c", "c"]

The last two result is unexpected for me. Can anybody explain it?