$str = 'This [WILL] be fOrMatTed';
$matches = array();
$searches = array();
preg_match_all('([(.+?)])', $str, $placeholders);
$lstr = strtolower($str);
foreach ($placeholders[0] as $mk => $match) {
$pos = $mk+1;
$matches[] = $match;
$searches[] = strtolower($match);
}
// Replace lower case with original case
$fstr = str_replace($searches,$matches,$lstr);
// Remove brackets
$fstr = str_replace(array('[',']'), '', $fstr);
echo $fstr // outputs 'this WILL be formatted'