                         }
                     }
                     
-                    blockBuffer += String(blockCharacter)
+                    blockBuffer.append(blockCharacter)
                 }
             } else {
                 resultingBlocks.append(block)

                var blockBuffer: String = ""
                for blockCharacter in block {
                    if blockCharacter == "[" {
                        blockBuffer += String(blockCharacter)
                        continue
                    }
                    
                    if blockCharacter == "]" && !blockBuffer.hasSuffix("\\") {
                        blockBuffer += String(blockCharacter)
                        resultingBlocks.append(blockBuffer)
                        break
                    }

                currentBlock = ""
            }
            
            currentBlock.append(char)
            
            if ("]" == char || "}" == char) && !escape {
                blocks.append(currentBlock)
