Необходимо выполнить валидацию строки по определённым правилам:
Есть регулярные выражения для валидации распространенных видов данных
https://habrahabr.ru/post/123845/
1)Номер кредитки:
[0-9]{13,16}
2)ICQ:
([1-9])+(?:-?\d){4,}
3)Набор из букв и цифр (латиница):
^[a-zA-Z0-9]+$
4)Набор из букв и цифр (латиница + кириллица):
^[а-яА-ЯёЁa-zA-Z0-9]+$
5)Домен (например abcd.com):
^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$
6)IPv4: (подкорректировано runcore)
((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)
7)IPv6:
((^|:)([0-9a-fA-F]{0,4})){1,8}$
8 )Имя пользователя (с ограничением 2-20 символов, которыми могут быть буквы и цифры, первый символ обязательно буква):
^[a-zA-Z][a-zA-Z0-9-_\.]{1,20}$
9)Пароль (Строчные и прописные латинские буквы, цифры):
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$
10)Пароль (Строчные и прописные латинские буквы, цифры, спецсимволы. Минимум 8 символов):
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$
11)Дата в формате YYYY-MM-DD:
[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])
UPD. Более строгая проверка:
(19|20)\d\d-((0[1-9]|1[012])-(0[1-9]|[12]\d)|(0[13-9]|1[012])-30|(0[13578]|1[02])-31)
12)Дата в формате DD/MM/YYYY:
(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d
13)Целые числа и числа с плавающей точкой (разделитель точка):
\-?\d+(\.\d{0,})?
UUID:
^[0-9A-Fa-f]{8}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{12}$
14)Широта или долгота:
-?\d{1,3}\.\d+
15)E-mail:
^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$
UPD. URL на латинице. Если нужно распознавать и кириллические домены, необходимо изменить все «a-z0-9» на «а-яёa-z0-9» и добавить в список доменных зон «РФ»
~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:ru|su|com|net|org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)(?:(?!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[a-z0-9.,_@%&?+=\~/-]*)?(?:#[^ '\"&]*)?$~i
16)Время в формате HH:MM:SS :
^([0-1]\d|2[0-3])(:[0-5]\d){2}$
17) Mac-адрес :
([0-9a-fA-F]{2}([:-]|$)){6}$|([0-9a-fA-F]{4}([.]|$)){3}
Clarion code:
RV = MATCH((CLIP(PasswordValidateString)),'(?=^.<123>8,<125>$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$', Match:Regular)
Как правильно оформить данный шаблоны регулярных выражений с помощью функции Clarion MATCH:
Проверка на требуемое соответствие сложности пароля:
PasswordValidateString = 'Sj3w&k5Y7^9s%hs0'
RV = MATCH((CLIP(PasswordValidateString)),'(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$', Match:Regular)
Ошибка компилятора

Проблемные символы { } - исправляю { на <123> , } на <125> ошибка устранена - но валидация не работает RV == 0

На http://html5pattern.com/Passwords PasswordValidateString = 'Sj3w&k5Y7^9s%hs0' - успешно проходит валидацию

Как вставить в выражение Clarin MATCH "проблемные" символы и правильно оформить строку выражения для проверки требуемой сложности пароля в Clarion?