$re = '/^(?:[A-Za-z0-9+]{4})*(?:[A-Za-z0-9+]{2}==|[A-Za-z0-9+]{3}=|[A-Za-z0-9+]{4})$/um';
$str = 'TGUgTG9yZW0gSXBzdW0gZXN0IHNpbXBsZW1lbnQgZHUgZmF1eCB0ZXh0ZSBlbXBsb3nDqSBkYW5zIGxhIGNvbXBvc2l0aW9uIGV0IGxhIG1pc2UgZW4gcGFnZSBhdmFudCBpbXByZXNzaW9uLiBMZSBMb3JlbSBJcHN1bSBlc3QgbGUgZmF1eCB0ZXh0ZSBzdGFuZGFyZCBkZSBsJ2ltcHJpbWVyaWUgZGVwdWlzIGxlcyBhbm7DqWVzIDE1MDAsIHF1YW5kIHVuIHBlaW50cmUgYW5vbnltZSBhc3NlbWJsYSBlbnNlbWJsZSBkZXMgbW9yY2VhdXggZGUgdGV4dGUgcG91ciByw6lhbGlzZXIgdW4gbGl2cmUgc3DDqWNpbWVuIGRlIHBvbGljZXMgZGUgdGV4dGUuIElsIG4nYSBwYXMgZmFpdCBxdWUgc3Vydml2cmUgY2lucSBzacOoY2xlcywgbWFpcyBzJ2VzdCBhdXNzaSBhZGFwdMOpIMOgIGxhIGJ1cmVhdXRpcXVlIGluZm9ybWF0aXF1ZSwgc2FucyBxdWUgc29uIGNvbnRlbnUgbidlbiBzb2l0IG1vZGlmacOpLiBJbCBhIMOpdMOpIHBvcHVsYXJpc8OpIGRhbnMgbGVzIGFubsOpZXMgMTk2MCBncsOiY2Ugw6AgbGEgdmVudGUgZGUgZmV1aWxsZXMgTGV0cmFzZXQgY29udGVuYW50IGRlcyBwYXNzYWdlcyBkdSBMb3JlbSBJcHN1bSwgZXQsIHBsdXMgcsOpY2VtbWVudCwgcGFyIHNvbiBpbmNsdXNpb24gZGFucyBkZXMgYXBwbGljYXRpb25zIGRlIG1pc2UgZW4gcGFnZSBkZSB0ZXh0ZSwgY29tbWUgQWxkdXMgUGFnZU1ha2VyLg==
Test string ';
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