def parse_ins_string(string):
    """ split up an instruction file line to get the observation names

    Parameters
    ----------
    string : str
        instruction file line

    Returns
    -------
    obs_names : list
        list of observation names

    """
    istart_markers = ["[","(","!"]
    iend_markers = ["]",")","!"]

    obs_names = []

    idx = 0
    while True:
        if idx >= len(string) - 1:
            break
        char = string[idx]
        if char in istart_markers:
            em = iend_markers[istart_markers.index(char)]
            # print("\n",idx)
            # print(string)
            # print(string[idx+1:])
            # print(string[idx+1:].index(em))
            # print(string[idx+1:].index(em)+idx+1)
            eidx = min(len(string),string[idx+1:].index(em)+idx+1)
            obs_name = string[idx+1:eidx]
            if obs_name.lower() != "dum":
                obs_names.append(obs_name)
            idx = eidx + 1
        else:
            idx += 1
    return obs_names
split up an instruction file line to get the observation names

    Parameters
    ----------
    string : str
        instruction file line

    Returns
    -------
    obs_names : list
        list of observation names