enhanced case-insensitive search with substring