$re = '/([0]?[1-9]|[1][012])(?:\s*)(Oca(?:k)?|Sub(?:at)?|Şub(?:at)?|Mar(?:t)?|Nis(?:an)?|May(?:ıs)?|Haz(?:iran)?|Tem(?:muz)?|Ağus(?:tos)?|Eyl(?:lül)?|Eylül|Ekim|Kas(?:ım)?|Ara(?:lık)?)(?:\s*)([0-9]{1,4})(?:\s*|\s*\-\s*)(?:\s*)(([0-9]{1,2}\:[0-9]{1,2}\:[0-9]{1,2})|[0-9]{1,2}\:[0-9]{1,2})/';
$str = '03 Subat 2017 - 17:47:25';
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