code: def magic_string(string, filename=None):
      
      if not string:
          raise ValueError("Input was empty")
      head, foot = _string_details(string)
      ext = ext_from_filename(filename) if filename else None
      info = _identify_all(head, foot, ext)
      info.sort(key=lambda x: x.confidence, reverse=True)
      return info
docs: Returns tuple of (num_of_matches, array_of_matches)
      arranged highest confidence match first
      If filename is provided it will be used in the computation.
  
      :param string: string representation to check
      :param filename: original filename
      :return: list of possible matches, highest confidence first