docs: def object_filter(objects, grep):
      """Filter out any objects that do not have attributes with values matching
      *all* regular expressions present in grep (AND, essentially)
  
      :param objects ADObject: A list of ADObjects
      :param grep list: A list of regular expressions that must match for filtering
  
      :return: A list of filtered ADObjects
      :rtype: list
      """
      filtered = []
      if grep:
          for ad_object in objects:
              o_string = ' '.join([value for value in ad_object.to_dict().values()
                                   if isinstance(value, str)])
              skip = False
              for regex in grep:
                  if not re.search(regex, o_string, re.M|re.S|re.I):
                      skip = True
                      break
              if not skip:
                  filtered.append(ad_object)
  
          return filtered
      else:
          return objects