       guard let range = span(index) where range.startIndex < string.endIndex else {
         return nil
       }
-      return string.substringWithRange(range)
+      return string[range]
     }
     
     /**

        }
        
        end = string.startIndex.advancedBy(result.range.location)
        results.append(string.substringWithRange(start..<end))
        if regex.numberOfCaptureGroups > 0 {
          results.appendContentsOf(MatchObject(string: string, match: result).groups())
        }
        splitsLeft--
        start = end.advancedBy(result.range.length)
      }
      if start <= string.endIndex {
        results.append(string.substringWithRange(start..<string.endIndex))
      }
      return results
    }

    
    /// NSRegularExpressionOptions used to contructor this RegexObject
    public var flags: Flag {
      return regex?.options ?? []
    }
    
    /// Number of capturing groups
