added smartcase and ignorecase