'Check to make sure that ``s`` still corresponds to some chunked
version of ``_pieces``.
:type verify_tags: bool
:param verify_tags: Whether the individual tags should be
checked.  If this is false, ``_verify`` will check to make
sure that ``_str`` encodes a chunked version of *some*
list of tokens.  If this is true, then ``_verify`` will
check to make sure that the tags in ``_str`` match those in
``_pieces``.
:raise ValueError: if the internal string representation of
this ``ChunkString`` is invalid or not consistent with _pieces.'

def _verify(self, s, verify_tags):

    if (not ChunkString._VALID.match(s)):
        raise ValueError((u'Transformation    generated    invalid    chunkstring:\n        %s' % s))
    brackets = ChunkString._BRACKETS.sub(u'', s)
    for i in range((1 + (len(brackets) // 5000))):
        substr = brackets[(i * 5000):((i * 5000) + 5000)]
        if (not ChunkString._BALANCED_BRACKETS.match(substr)):
            raise ValueError((u'Transformation    generated    invalid    chunkstring:\n        %s' % s))
    if (verify_tags <= 0):
        return
    tags1 = re.split(u'[\\{\\}<>]+', s)[1:(-1)]
    tags2 = [self._tag(piece) for piece in self._pieces]
    if (tags1 != tags2):
        raise ValueError(u'Transformation    generated    invalid    chunkstring:    tag    changed')
