         return match
     }
 }
+
+// MARK: - Cross-Platform Support
+
+#if os(OSX) || os(iOS) || os(watchOS) || os(tvOS)
+    
+    public extension POSIXRegularExpression {
+        
+        public typealias FlagBitmask = Int32
+        
+        public typealias ErrorCode = Int32
+        
+        public typealias Match = regmatch_t
+    }
+    
+#elseif os(Linux)
+    
+    public extension POSIXRegularExpression {
+        
+        public typealias FlagBitmask = Int32
+                
+        public typealias ErrorCode = reg_errcode_t
+        
+        public typealias Match = regmatch_t
+    }
+    
+#endif

        
        regfree(&self)
    }
    
    
    public func firstMatch(string: String, options: [RegularExpression.MatchOption]) -> RegularExpressionMatch? {
        


public extension POSIXRegularExpression {
    
    public static func compile(pattern: String, options: [RegularExpression.CompileOption]) -> (ErrorCode, POSIXRegularExpression) {
        
        var regularExpression = POSIXRegularExpression()
