             if checker(self[index]) {
                 break
             }
-            index = characters.index(after: index)
+            index = self.index(after: index)
         }
         return index
     }

            let list: [Character] = ["?", "!", "."]
            if next.isAZ() || list.contains(next) { // TODO: check complex case
                result.append(next)
                index = characters.index(after: index)
            } else if next == "[" {
                let block = try findSquare(index)
                index = block.index

            if checker(self[index]) {
                break
            }
            index = self.index(before: index)
        }
        return index
    }
