                     noClassMocking: Bool,
                     debugMode: Bool,
                     globEnabled: Bool,
+                    regex: String,
                     files: [String]) {
 
             self.output = output

                <*> noClassMocking
                <*> debugMode
                <*> globEnabled
                <*> input
        }
    }

        let tokensWithInheritance = options.noInheritance ? tokens : mergeInheritance(tokens)
        let tokensWithoutClasses = options.noClassMocking ? removeClasses(tokensWithInheritance) : tokensWithInheritance
        // filter excluded classes/protocols
        let matchedTokens = removeClassesAndProtocols(from: tokensWithoutClasses, using: options.regex)
        let parsedFiles = removeClassesAndProtocols(from: matchedTokens, in: options.exclude)

        let headers = parsedFiles.map { options.noHeader ? "" : FileHeaderHandler.getHeader(of: $0, includeTimestamp: !options.noTimestamp) }
        let imports = parsedFiles.map { FileHeaderHandler.getImports(of: $0, testableFrameworks: options.testableFrameworks) }
