docs: def parse_options_header(value, multiple=False):
      """Parse a ``Content-Type`` like header into a tuple with the content
      type and the options:
  
      >>> parse_options_header('text/html; charset=utf8')
      ('text/html', {'charset': 'utf8'})
  
      This should not be used to parse ``Cache-Control`` like headers that use
      a slightly different format.  For these headers use the
      :func:`parse_dict_header` function.
  
      .. versionchanged:: 0.15
          :rfc:`2231` parameter continuations are handled.
  
      .. versionadded:: 0.5
  
      :param value: the header to parse.
      :param multiple: Whether try to parse and return multiple MIME types
      :return: (mimetype, options) or (mimetype, options, mimetype, options, …)
               if multiple=True
      """
      if not value:
          return "", {}
  
      result = []
  
      value = "," + value.replace("\n", ",")
      while value:
          match = _option_header_start_mime_type.match(value)
          if not match:
              break
          result.append(match.group(1))  # mimetype
          options = {}
          # Parse options
          rest = match.group(2)
          continued_encoding = None
          while rest:
              optmatch = _option_header_piece_re.match(rest)
              if not optmatch:
                  break
              option, count, encoding, language, option_value = optmatch.groups()
              # Continuations don't have to supply the encoding after the
              # first line. If we're in a continuation, track the current
              # encoding to use for subsequent lines. Reset it when the
              # continuation ends.
              if not count:
                  continued_encoding = None
              else:
                  if not encoding:
                      encoding = continued_encoding
                  continued_encoding = encoding
              option = unquote_header_value(option)
              if option_value is not None:
                  option_value = unquote_header_value(option_value, option == "filename")
                  if encoding is not None:
                      option_value = _unquote(option_value).decode(encoding)
              if count:
                  # Continuations append to the existing value. For
                  # simplicity, this ignores the possibility of
                  # out-of-order indices, which shouldn't happen anyway.
                  options[option] = options.get(option, "") + option_value
              else:
                  options[option] = option_value
              rest = rest[optmatch.end() :]
          result.append(options)
          if multiple is False:
              return tuple(result)
          value = rest
  
      return tuple(result) if result else ("", {})