$re = '/^([A-Z]{2}[ \-]?[0-9]{2})(?=(?:[ \-]?[A-Z0-9]){9,30}$)((?:[ \-]?[A-Z0-9]{3,5}){2,7})([ \-]?[A-Z0-9]{1,3})?$/m';
$str = 'XX00 1234 5678 9012 3456 7890 1234 5678 90
YY00123456789012345678901234567890
----
AL28 BBB SSSSK CCCC CCCC CCCC CCCC
AD24-BBBB-SSSS-CCCC-CCCC-CCCC
BE16 BBBC CCCC CCKK
BA20 BBBS SSCC CCCC CCKK
BG22-BBBB-SSSS-DDCC-CCCC-CC
CY28 BBBS SSSS CCCC CCCC CCCC CCCC
DK18 BBBB CCCC CCCC CC
DE22 BBBB BBBB CCCC CCCC CC
EE20 BBSS CCCC CCCC CCCK
FO18 CCCC CCCC CCCC CC
FI18 BBBB BBCC CCCC CK
FR27 BBBB BSSS SSCC CCCC CCCC CKK
GE22 BBCC CCCC CCCC CCCC CC
GI23 BBBB CCCC CCCC CCCC CCC
GR27 BBBS SSSC CCCC CCCC CCCC CCC
GL18 BBBB CCCC CCCC CC
HU28 BBBS SSSK CCCC CCCC CCCC CCCK
IE22 BBBB SSSS SSCC CCCC CC
IS26 BBBB TTCC CCCC XXXX XXXX XX
IL23 BBB SSS CCCCCCCCCCCCC
IT27 KBBB BBSS SSSC CCCC CCCC CCC
JO27 BBBB CCCC CCCC CCCC CCCC CCCC CC
HR21 BBBB BBBC CCCC CCCC C
LV21 BBBB CCCC CCCC CCCC C
LB28 BBBB CCCC CCCC CCCC CCCC CCCC CC
LI21 BBBB BCCC CCCC CCCC C
LT20 BBBB BCCC CCCC CCCC
LU20 BBBC CCCC CCCC CCCC
MK19 BBBC CCCC CCCC CKK
MT31 BBBB SSSS SCCC CCCC CCCC CCCC CCC
MU30 BBBB BBSS CCCC CCCC CCCC RRRD DD
MC27 BBBB BSSS SSCC CCCC CCCC CKK
ME22 BBBC CCCC CCCC CCCC KK
NL18 BBBB CCCC CCCC CK
NO15 BBBB CCCC CCK
AT20 BBBB BCCC CCCC CCCC
PL28 BBBS SSSK CCCC CCCC CCCC CCCC
PT25 BBBB SSSS CCCC CCCC CCCK K
RO24 BBBB CCCC CCCC CCCC CCCC
SM27 KBBB BBSS SSSX XXXX XXXX XXX
SA24 BBCC CCCC CCCC CCCC CCCC
RS22 BBBC CCCC CCCC CCCC KK
SK24 BBBB SSSS SSCC CCCC CCCC
SI19 BBSS SCCC CCCC CKK
ES24 BBBB SSSS KKCC CCCC CCCC
CZ24 BBBB SSSS SSCC CCCC CCCC
TR26 BBBB BRCC CCCC CCCC CCCC CC
TN24 BBBB BCCC CCCC CCCC CCCC
GB22 BBBB SSSS SSCC CCCC CC
AE23 BBBB SSSS CCCC CCCC CCC
SE24 BBBB CCCC CCCC CCCC CCCC
CH21 BBBB BCCC CCCC CCCC C';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 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