code: def search(self, key_pattern: str, user_pattern: str) -> List[Entry]:
          
          # normalize key
          key_pattern = _normalized_key(key_pattern)
  
          # search
          results = []
          for entry in self.entries:
              if key_pattern in entry.key and user_pattern in entry.user:
                  results.append(entry)
  
          # sort results according to key (stability of sorted() ensures that the order of accounts for any given key remains untouched)
          return sorted(results, key=lambda e: e.key)
docs: Search database for given key and user pattern.