$re = '/(?:(.*)\s+(&|\*)\s*const|(.*)(?:\s+)const(?:\s*)(&|\*)?)$/m';
$str = 'std::string const&
std::string const
const std::string&
const char*
std::unordered_map<int, EnhancedGameObject*> const*
std::string * const
char const *';
$subst = "const \1\2\3\4";
$result = preg_replace($re, $subst, $str);
echo "The result of the substitution is ".$result;
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