Во-первых, начинайте с начала строки:
^
В поисках специального символа где-то в строке:
(?=.*[`!@#$%^&*().?":{}|<>\\/])
Поскольку вы считаете обратный удар и #
в качестве специального символа, убедитесь, что включили их в набор символов.(Большинство символов не нужно экранировать в наборе символов)
Также ищите буквенно-цифровые символы где-то в строке:
(?=.*[a-z0-9])
Затем сопоставляйте специальные символы и буквенно-цифровые символы, покавы доберетесь до конца строки:
[`!@#$%^&*().?":{}|<>\\/\]a-z0-9]+$
Соедините все вместе, и вы получите:
(?i)^(?=.*[`!@#$%^&*().?":{}|<>\\/\]])(?=.*[a-z0-9])[`!@#$%^&*().?":{}|<>\\/\]a-z0-9]+$
https://regex101.com/r/0ZUuda/11