         return true
     }
 
-    public func groups(string: String, options: MatchOptions = []) -> [String] {
+    public func groups(_ string: String, options: MatchOptions = []) -> [String] {
         var string = string
         let maxMatches = 10
         var groups = [String]()

// SOFTWARE.

@_exported import C7
@_exported import OperatingSystem

struct RegexError: ErrorProtocol {
    let description: String

    static func errorFromResult(result: Int32, preg: regex_t) -> RegexError {
        var preg = preg
        var buffer = [Int8](repeating: 0, count: Int(BUFSIZ))
        regerror(result, &preg, &buffer, buffer.count)

        return groups
    }

    public func replace(_ string: String, withTemplate template: String, options: MatchOptions = []) -> String {
        var string = string
        let maxMatches = 10
        var totalReplacedString: String = ""
