FIXME:

def chunk(self, regex):
        '''FIXME:
        '''
        chunks = []
        for component in self._content:
            chunks.extend(
                StringComponent(component.placeholder, s) for s in
                regex.split(str(component)))
        for i, (chunk1, chunk2) in enumerate(
                zip(chunks, islice(chunks, 1, None))):
            if chunk1.placeholder is not chunk2.placeholder:
                # We're crossing a boundary between placeholders
                if chunk1.strip() and chunk2.strip():
                    # There's no whitespace at the boundary, so stick the
                    # chunks together
                    # FIXME: This sort of defeats the point of the regex, as we
                    # only look at whitespace:
                    chunks[i:i + 2] = [self.__class__((chunk1, chunk2))]
        return chunks