public int? FindNextIndex(char value)
{
var stringWalker = new StringWalker();
var startingSource = source.Substring(startIndex);
foreach (var position in stringWalker.Iterate(startingSource))
{
if (position.Character == value && !stringWalker.StateIs(StringWalkerState.InsideString))
return position.Index + startIndex;
}
return null;
}