<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> >>>