<sbp> import re
<sbp> >>> r_bump = re.compile(r'((?:[A-Z][a-z]+){2,})')
<sbp> >>> input = 'BumpOne:BumpTwo:BumpThree'
<sbp> >>> pos = 0
<sbp> >>> while 1:
<sbp> ...    m = r_bump.match(input[pos:])
<sbp> ...    if m:
<sbp> ...       print m.group(1)
<sbp> ...       pos += m.end()
<sbp> ...       if pos < len(input):
<sbp> ...          assert input[pos:].startswith(':')
<sbp> ...          pos += 1
<sbp> ...    else: break
<sbp> ...
<sbp> BumpOne
<sbp> BumpTwo
<sbp> BumpThree
<sbp> >>>