Can't Do Regex Matching

I am creating my signup page by following the Firebase Authentication Tutorial 2020 and on my signup page, whenever I click create account without anything in any of the fields, my app crashes. Error code is: “Thread 1: Exception: “Can’t do regex matching, reason: (Can’t open pattern U_REGEX_RULE_SYNTAX (string , pattern ^(?=.[a-z])(?=.[A-Z])(?=.*\d)a-zA-z\d{8,32}$, case 0, canon 0))”” on the AppDelegate.swift file.
This is my code for the password validity check:

static func isPasswordValid(_ password : String) -> Bool {

    let passwordTest = NSPredicate(format: "SELF MATCHES %@", "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[a-zA-z\\d](?=.*[0-9]){8,32}$")
    return passwordTest.evaluate(with: password)


This is my code for the signup page:

import UIKit
import FirebaseAuth
import Firebase
import FirebaseFirestore

class SignUpP1ViewController: UIViewController {

@IBOutlet weak var FirstNameTextField: UITextField!

@IBOutlet weak var LastNameTextField: UITextField!

@IBOutlet weak var EmailTextField: UITextField!

@IBOutlet weak var PasswordTextField: UITextField!

@IBOutlet weak var ConfirmPasswordTextField: UITextField!

@IBOutlet weak var ContinueButton: UIButton!

@IBOutlet weak var AlreadyhaveaccountButton: UIButton!

@IBOutlet weak var ErrorLabel: UILabel!

override func viewDidLoad() {

    let toolBar = UIToolbar ()
    let flexibleSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: nil, action: nil)
    let doneButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.done, target: self, action: #selector(self.doneClicked))
    toolBar.setItems([flexibleSpace, doneButton], animated: true)
    FirstNameTextField.inputAccessoryView = toolBar
    LastNameTextField.inputAccessoryView = toolBar
    EmailTextField.inputAccessoryView = toolBar
    PasswordTextField.inputAccessoryView = toolBar
    ConfirmPasswordTextField.inputAccessoryView = toolBar
    // Do any additional setup after loading the view.

@objc func doneClicked() {

func setUpElements() {
    ErrorLabel.alpha = 0

func validateFields() -> String? {
    if let FirstNameEmpty = FirstNameTextField.text, !FirstNameEmpty.isEmpty
            return "Please fill in all fields"
        !(FirstNameTextField.text?.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty)! ||
        !(LastNameTextField.text?.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty)! ||
        !(EmailTextField.text?.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty)! ||
        !(PasswordTextField.text?.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty)! ||
        !(ConfirmPasswordTextField.text?.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty)!

            let cleanedPassword = PasswordTextField.text!
    //.trimmingCharacters(in: .whitespacesAndNewlines)
        if Utilities.isPasswordValid(cleanedPassword) == false {
                return "Password has to have at minimum 1 capital letter, 1 lowercase letter, 1 number, and be between 8-32 characters"
           return nil
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destination.
        // Pass the selected object to the new view controller.

@IBAction func ContinueButtonTapped(_ sender: Any) {

        let error = validateFields()
        if error != nil{
        else {
            let firstname = FirstNameTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
            let lastname = LastNameTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
            let email = EmailTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
            let password = PasswordTextField.text!.trimmingCharacters(in: .whitespacesAndNewlines)
            Auth.auth().createUser(withEmail: email, password: password) { (result, err) in
                if err != nil {
                    self.showError("Error creating user")
                else {
                    let db = Firestore.firestore()
                    db.collection("users").addDocument(data: ["firstname":firstname, "lastname":lastname, "uid": result!.user.uid ]) { (error) in
                        if error != nil {
                            self.showError("Error saving user data, please contact support")

@IBAction func AlreadyhaveaccountTapped(_ sender: Any) {

func showError(_ message: String) {
    ErrorLabel.text = message
    ErrorLabel.alpha = 1

func transitionToHome() {
   let homeViewController = storyboard?.instantiateViewController(identifier: Constants.Storyboard.homeViewController) as? HomeViewController
    view.window?.rootViewController = homeViewController


Your regex is messed up. You have a quantifier {8,32} after a lookahead expression (?=.*[0-9]) and that is meaningless. Remove that lookahead and try again.