input: Write a function to create an instance of the "sru" class and perform a search using its "search" method. The function should accept a query string and optionally a collection name, start record number, maximum number of records to return, and record schema. The function should return the "response" object containing the search results. If the search is successful, use the "titles" property of the "response" object to extract and return the titles of the search results. If the search is unsuccessful, return an empty list.
  assert extract_titles("books", "GGC") == ["Title1", "Title2"]
  assert extract_titles("papers", "BYVANCK") == []
  assert extract_titles("articles") == []
  assert extract_titles("reports", recordschema="ddd") == []
  assert extract_titles("manuscripts", "SGD", 1, 10, "dcx") == ["Title3", "Title4"]
output: def extract_titles(query, collection=None, start=None, max_records=None, recordschema=None):
      sru_instance = sru(collection, start, max_records, recordschema)
      response = sru_instance.search(query)
      if response.success:
          return response.titles
      else:
          return []