$re = '/^ # начало строки
(?:
([a-z]) | # 1 гр
([A-Z]) | # 2 гр
([0-9]) # 3 гр
)
(?(1) # если совпала 1 гр
[a-z]*+ # захватываем все символы как в 1 гр
(?:
([A-Z]) | # 4 гр
([0-9]) # 5 гр
)
(?(4) # если совпала 4 гр
[a-zA-Z]*+ # захватываем все символы как в 1 и 4 гр
[0-9]
[a-zA-Z0-9]*+
$ # закрыли весь поиск
| # иначе если совпала 4 гр
(?(5) # если совпала 5 гр
[a-z0-9]*+ #захватываем все символы как в 1 и 5 гр
[A-Z]
[a-zA-Z0-9]*+
$
| # иначе если совпала 5 гр
(?!) # роняем матчинг
) # конец если совпала 5 гр
) # конец если совпала 4 гр
) # конец если совпала 1 гр
(?(2) # если совпала 2 гр
[A-Z]*+ # захватываем все символы как в 2 гр
(?:
([a-z]) | # 6 гр
([0-9]) # 7 гр
)
(?(6) # если совпала 6 гр
[a-zA-Z]*+ # захватываем все символы как в 2 и 6 гр
[0-9]
[a-zA-Z0-9]*+
$ # закрыли весь поиск
| # иначе если совпала 6 гр
(?(7) # если совпала 7 гр
[A-Z0-9]*+ #захватываем все символы как в 2 и 7 гр
[a-z]
[a-zA-Z0-9]*+
$
| # иначе если совпала 7 гр
(?!) # роняем матчинг
) # конец если совпала 7 гр
) # конец если совпала 6 гр
) # конец если совпала 2 гр
(?(3) # если совпала 3 гр
[0-9]*+ # захватываем все символы как в 3 гр
(?:
([A-Z]) | # 8 гр
([a-z]) # 9 гр
)
(?(8) # если совпала 8 гр
[0-9A-Z]*+ # захватываем все символы как в 3 и 8 гр
[a-z]
[a-zA-Z0-9]*+
$ # закрыли весь поиск
| # иначе если совпала 8 гр
(?(9) # если совпала 9 гр
[0-9a-z]*+ #захватываем все символы как в 3 и 9 гр
[A-Z]
[a-zA-Z0-9]*+
$
| # иначе если совпала 5 гр
(?!) # роняем матчинг
) # конец если совпала 5 гр
) # конец если совпала 8 гр
) # конец если совпала 3 гр/x';
$str = 'AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8AaluhfDnaoufbicbIHBDIHBKJXNdCJKfBCNCNX5BCHBAHIBAVIsdniuhuygvD6w489bgtvdihfcbsigdbcsihcgfisyg8';
preg_match($re, $str, $matches, PREG_OFFSET_CAPTURE, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php