TextRange (@NotNull String text, @NotNull String subText, int offset) { int start = 0; while ((start = StringUtil.indexOf(text, subText, start)) != -1) { int nSlashes = 0; for (int pos = start - 1; pos >= 0; pos--) { if (text.charAt(pos) != '\\') break; nSlashes++; } if (nSlashes % 2 == 0) { return TextRange.from(offset + start, subText.length()); } start += subText.length(); } return null; }