   public var chars: [UInt8]
   public var ranges: [UInt8]
   public var negated: Bool
+  public var ignoreCase: Bool
 
   public init() {
     type = .Set
     chars = []
     ranges = []
     negated = false
+    ignoreCase = false
   }
 
   public mutating func addChar(c: UInt8) {

    let len = a.count
    for i in 0..<len {
      let c = a[i]
      if c >= 97 && c <= 122 {
        a[i] = c - 32
      }
    }
    return a

      switch part.type {
        case .Name:
          let namePart = part as! GlobMatcherNamePart
          let bytes = ignoreCase ? Ascii.toLowerCase(namePart.bytes) :
              namePart.bytes
          if lastType == .Any {
            m.eatUntilIncludingBytes(bytes)
          } else {
            m.eatBytes(bytes)
          }
        case .Any: () // Ignore.
        case .One:
          m.next()
        case .Set: ()
          var setPart = part as! GlobMatcherSetPart
          setPart.ignoreCase = ignoreCase
          let table = setPart.makeComparisonTable()
          if setPart.isNegated {
            m.eatOneNotFromTable(table)
