                 })
             self.matches += array
             if let (start, end) = surroundingTokenPair(range) {
+                println("Inside pair: \(start) - \(end)")
                 self.process(start, decrementingToken: end, attributedString: attributedString)
             }
         }
         
         matches.sort { $0.range.location < $1.range.location }
+        
+        //println("Tokens: \(matches)")
         
         var incrementingTokens = [Int: Token]()
         var depth = 0

            let range = rangeForScope(scope, incrementingToken: incrementingToken, decrementingToken: decrementingToken)
            if let color = self.theme?[type] {
                attributedString.addAttribute(NSForegroundColorAttributeName, value: color, range: range)
            }
        }
    }

        case .All:
            return NSRange(start.location ..< end.location + end.length)
        case .Incrementing(let captureGroup):
            return incrementingToken.ranges[captureGroup]
        case .Decrementing(let captureGroup):
            return decrementingToken.ranges[captureGroup]
        case .Between:
            return NSRange(start.end ..< end.start)
        default:
