                 XCTFail("Unexpected StringValidationError type thrown by StringValidationPattern match failure")
             }
         }
+    }
+    
+    func test_string_validation_numeric_only_regex_pattern_returns_true_when_matching_numeric_only_string() {
+        guard let didMatch = try? StringValidationPattern.numericOnly.match("89745873953459029478") else {
+            XCTFail("Expected numeric only string to match numericOnly StringValidationPattern")
+            return
+        }
+        
+        XCTAssertTrue(didMatch)
     }
     
     func test_string_validation_numeric_only_regex_pattern_throws_contains_non_numeric_characters_error_on_failure_to_match() {

        }
    }
    
    func test_string_validation_alpha_numeric_only_regex_pattern_throws_contains_non_alpha_numeric_characters_error_on_failure_to_match() {
        XCTAssertThrowsError(try StringValidationPattern.alphaNumericOnly.match("%$£")) { error in
            guard let stringValidationError = error as? StringValidationError else {


class StringValidationPatternTests: XCTestCase {

    func test_string_validation_alpha_only_regex_pattern_returns_true_when_matching_alpha_only_string() {
        guard let didMatch = try? StringValidationPattern.alphaOnly.match("aBcDEfGHijklM") else {
            XCTFail("Expected alpha only string to match alphaOnly StringValidationPattern")
            return
        }
        
        XCTAssertTrue(didMatch)
    }
    
    func test_string_validation_alpha_only_regex_pattern_throws_contains_non_alpha_characters_error_on_failure_to_match() {
        XCTAssertThrowsError(try StringValidationPattern.alphaOnly.match("123")) { error in
            guard let stringValidationError = error as? StringValidationError else {
