         
         switch rawValue {
             
-        case REG_BADRPT:    self = InvalidRepetition
-        case REG_BADBR:     self = InvalidBackReference
-        case REG_ESPACE:    self = OutOfMemory
-        case REG_BADPAT:    self = InvalidPatternOperator
-        case REG_EBRACE:    self = UnMatchedBraceInterval
-        case REG_EBRACK:    self = UnMatchedBracketList
-        case REG_ECOLLATE:  self = InvalidCollating
-        case REG_ECTYPE:    self = UnknownCharacterClassName
-        case REG_EESCAPE:   self = TrailingBackslash
-        case REG_EPAREN:    self = UnMatchedParenthesis
-        case REG_ERANGE:    self = InvalidRange
-        case REG_ESUBREG:   self = InvalidBackReferenceToSubExpression
+        case REG_BADRPT:                            self = InvalidRepetition
+        case REG_BADBR:                             self = InvalidBackReference
+        case REG_ESPACE:                            self = OutOfMemory
+        case REG_BADPAT:                            self = InvalidPatternOperator
+        case REG_EBRACE:                            self = UnMatchedBraceInterval
+        case REG_EBRACK:                            self = UnMatchedBracketList
+        case REG_ECOLLATE:                          self = InvalidCollating
+        case REG_ECTYPE:                            self = UnknownCharacterClassName
+        case REG_EESCAPE:                           self = TrailingBackslash
+        case REG_EPAREN:                            self = UnMatchedParenthesis
+        case REG_ERANGE:                            self = InvalidRange
+        case REG_ESUBREG:                           self = InvalidBackReferenceToSubExpression
             
             /*
             #if os(linux)

        
        switch self {
            
        case InvalidRepetition:                    return REG_BADRPT
        case InvalidBackReference:                 return REG_BADBR
        case OutOfMemory:                          return REG_ESPACE
        case InvalidPatternOperator:               return REG_BADPAT
        case UnMatchedBraceInterval:               return REG_EBRACE
        case UnMatchedBracketList:                 return REG_EBRACK
        case InvalidCollating:                     return REG_ECOLLATE
        case UnknownCharacterClassName:            return REG_ECTYPE
        case TrailingBackslash:                    return REG_EESCAPE
        case UnMatchedParenthesis:                 return REG_EPAREN
        case InvalidRange:                         return REG_ERANGE
        case InvalidBackReferenceToSubExpression:  return REG_ESUBREG
        }
    }
}

        
        switch rawValue {
            
        case REG_NOTBOL:            self = NotBeginningOfLine
        case REG_NOTEOL:            self = NotEndOfLine
            
        default: return nil
        }
