<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def un_camel_case(text):
 r""" Splits apart words that are written in CamelCase. Bugs: - Non-ASCII characters are treated as lowercase letters, even if they are actually capital letters. Examples: '1984 ZX Spectrum Games' 'aa Aa aa Aa A 0a A AA Aa! AAA' 'Mot\xf6r Head' 'MS Windows 3.11 For Workgroups' This should not significantly affect text that is not camel-cased: 'ACM Computing Classification System' 'Anne Blunt, 15th Baroness Wentworth' 'Hindi-Urdu' """

    revtext = text[::-1]
    pieces = []
    while revtext:
        match = CAMEL_RE.match(revtext)
        if match:
            pieces.append(match.group(1))
            revtext = revtext[match.end():]
        else:
            pieces.append(revtext)
            revtext = ''
    revstr = ' '.join(piece.strip(' _') for piece in pieces
                      if piece.strip(' _'))
    return revstr[::-1].replace('- ', '-')