'Search lines for special continuation character to determine number of
continued rows in a datablock.  For efficiency, depth gives the upper
limit of lines to search.'

def search_multiline(self, lines, depth=150):

    (comment, special, cont) = zip(*(self.re_multiline.search(l).groups() for l in lines[:depth]))
    data_start = first_false_index(comment)
    if (data_start is None):
        return (None, None, lines[:depth])
    header_lines = lines[:data_start]
    first_special = first_true_index(special[data_start:depth])
    if (first_special is None):
        return (None, None, header_lines)
    last_special = first_false_index(special[(data_start + first_special):depth])
    markers = np.cumsum([data_start, first_special, last_special])
    multiline_block = lines[markers[1]:markers[(-1)]]
    return (markers, multiline_block, header_lines)
