boolean (@NotNull TextRange rangeInsideHost, @NotNull StringBuilder outChars) { String subText = rangeInsideHost.substring(myHost.getText()); outSourceOffsets = new int[subText.length() + 1]; final IElementType elementType = myHost.getFirstChild().getNode().getElementType(); if (GroovyTokenSets.STRING_LITERALS.contains(elementType) || elementType == GroovyTokenTypes.mGSTRING_CONTENT) { return GrStringUtil.parseStringCharacters(subText, outChars, outSourceOffsets); } else if (elementType == GroovyTokenTypes.mREGEX_LITERAL || elementType == GroovyTokenTypes.mREGEX_CONTENT) { return GrStringUtil.parseRegexCharacters(subText, outChars, outSourceOffsets, true); } else if (elementType == GroovyTokenTypes.mDOLLAR_SLASH_REGEX_LITERAL || elementType == GroovyTokenTypes.mDOLLAR_SLASH_REGEX_CONTENT) { return GrStringUtil.parseRegexCharacters(subText, outChars, outSourceOffsets, false); } else return false; }