diff --git a/addons/addon-search/src/SearchAddon.ts b/addons/addon-search/src/SearchAddon.ts index 79ed31ba..6bc1ae76 100644 --- a/addons/addon-search/src/SearchAddon.ts +++ b/addons/addon-search/src/SearchAddon.ts @@ -499,12 +499,18 @@ export class SearchAddon extends Disposable implements ITerminalAddon , ISearchA const [stringLine, offsets] = cache; const offset = this._bufferColsToStringOffset(row, col); - const searchTerm = searchOptions.caseSensitive ? term : term.toLowerCase(); - const searchStringLine = searchOptions.caseSensitive ? stringLine : stringLine.toLowerCase(); + let searchTerm: string = term; + let searchStringLine: string = stringLine; + if (searchOptions.regex === false){ + searchTerm = searchOptions.caseSensitive ? term : term.toLowerCase(); + searchStringLine = searchOptions.caseSensitive ? stringLine : stringLine.toLowerCase(); + } let resultIndex = -1; if (searchOptions.regex) { - const searchRegex = RegExp(searchTerm, 'g'); + let regexFlags = 'g'; + searchOptions.caseSensitive !== true ? regexFlags+='i':''; + const searchRegex = RegExp(searchTerm, regexFlags); let foundTerm: RegExpExecArray | null; if (isReverseSearch) { // This loop will get the resultIndex of the _last_ regex match in the range 0..offset