def breakable_units(s):
    """
    Break a string into a list of substrings, breaking at each point that it is
    permissible for `wrap(..., break_long_words=True)` to break; i.e., _not_
    breaking in the middle of ANSI color escape sequences.
    """
    units = []
    for run, color in zip(
        re.split('(' + COLOR_BEGIN_RGX + '|' + COLOR_END_RGX + ')', s),
        cycle([False, True]),
    ):
        if color:
            units.append(run)
        else:
            ### TODO: Keep combining characters together
            units.extend(run)
    return units