Как вариант:
$schemes = [
'MASTERCARD' => [
'/^5[1-5][0-9]{14}$/',
'/^2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12})$/',
]
];
$flag= null;
$data= '123456';
array_walk($schemes['MASTERCARD'], function(&$v, $k) use($flag, $data){
if(!empty($flag)) return;
$flag= preg_match($v, $data);
});
if(!empty($flag))
echo "OK!";
else
echo "FAIL!";
Либо можете попробовать такой вариант:
$data= '123456';
preg_replace($schemes['MASTERCARD'], 'OK', $data, 1, $success);
if($success)
echo "OK!";
else
echo "FAIL!";