Следующие параметры будут соответствовать обоим:
/:\/\/s3\.amazonaws.com\/([^\/]+)|:\/\/([^.]+)\.s3\.amazonaws\.com\//
эта простая функция должна красиво обернуться
function getS3Info($url) {
if(! preg_match('/(?:\/\/s3\.amazonaws.com\/([^\/]+)|:\/\/([^.]+)\.s3\.amazonaws\.com)\/([^\/]+)/', $url, $a)) {
return false;
}
$bucket = isset($a[2]) ? $a[2] : $a[1];
$resource = $a[3];
return array('bucket' => $bucket, 'resource' => $resource);
}