Parse a DATA section until : or \n but exclude : in a string part.
        e.g.:
            10 DATA 1,"FOO:BAR",2:PRINT "NO DATA"

def _parse_data(self, line, old_data=""):
        """
        Parse a DATA section until : or \n but exclude : in a string part.
        e.g.:
            10 DATA 1,"FOO:BAR",2:PRINT "NO DATA"
        """
        log.debug("*** parse DATA: >>>%r<<< old data: >>>%r<<<", line, old_data)
        parts = self.regex_split_data.split(line, maxsplit=1)
        if len(parts) == 1:  # end
            return old_data + parts[0], None

        pre, match, post = parts
        log.debug("\tpre: >>>%r<<<", pre)
        pre = old_data + pre
        log.debug("\tmatch: >>>%r<<<", match)
        log.debug("\tpost: >>>%r<<<", post)
        if match == ":":
            return old_data, match + post
        elif match == '"':
            string_part, rest = self._parse_string(post)
            return self._parse_data(rest, old_data=pre + match + string_part)

        raise RuntimeError("Wrong Reg.Exp.? match is: %r" % match)