def METHOD_NAME(filename, start_pattern):
    """
    Extract lens information from the lens descriptions array in a maker note cpp file
    filename: path to cpp file
    start_pattern: start_pattern == line.strip() should return True for
                   the starting line of the array containing the lenses.
    returns: a list of lens entries containing a tuple of the form:
             (lens ID, lens description, metadata dictionary)
             for content of metadata see extract_meta() function.
    """
    lenses = []
    with open(filename, "r") as f:
        in_lens_array = False
        for line in f.readlines():
            stripped = line.strip()
            if stripped == start_pattern:
                in_lens_array = True
                continue
            if stripped == "};":
                in_lens_array = False
                continue
            if in_lens_array:
                lens_entry = parse_lens_entry(stripped)
                if not lens_entry:
                    log.error(f"Failure parsing lens entry: {stripped}.")
                    continue
                if lens_entry[1] == "n/a":
                    continue
                meta = extract_meta(lens_entry[1])
                if not meta:
                    log.error(f"Failure extracting metadata from lens description:  {lens_entry[0]}: {lens_entry[1]}.")
                    continue
                lenses.append({"id": lens_entry[0], "desc": lens_entry[1], "meta": meta})
        return lenses