Given a list of strings and a query, return all items whose text contains the query as a case-insensitive substring. Preserve the original order of matching items, and return all items when the query is empty.
items = ["Apple", "banana", "Grape", "Pineapple"], query = "app"Output["Apple", "Pineapple"]WhyBoth contain "app" ignoring case.items = ["Doc Viewer", "Search", "Insights", "Notebook"], query = "s"Output["Search", "Insights"]WhyThese are the only strings containing "s" or "S".`1 <= len(items) <= 10^4``0 <= len(items[i]) <= 100``0 <= len(query) <= 100`Preserve original order of matches