You should take note that when [char] does not exist in [string], this will return the length of [string]. You can adjust for that with a more complex formula and while this will return -1 when [char] isn't in [string], it is also more difficult to maintain:
if(len(mvindex(split(lower([string]),"[char]"),0))=len(lower([string])),-1,len(mvindex(split(lower([string]),"char]"),0)))
You could also wrap in some ifnull/nullif to avoid having to repeat the formula.
ifnull(nullif(len(mvindex(split(lower([string])),"[char]"),0)),len([string]))),-1)
... View more