$re = '/^ *(<[^\r\n<>]*>)|(\s*<[^\r\n<>]*>\s*)(?=[^\r\n<]*$)|<\/?color[^<>]*>/m';
$str = '<color=#3D8CBF>using</color> <color=#00FFFF> aaa <Dont remove this tag> System</color>.Collections;
<color=#3D8CBF>using</color> <color=#00FFFF>System</color>.Collections.Generic;
<color=#3D8CBF>using</color> <color=#00FFFF>UnityEngine</color>;
<color=#3D8CBF>public</color> <color=#3D8CBF>class</color> ChangePosition : <color=#00FF00>MonoBehaviour</color> {
<color=#0000FF>// Update <color=#3D8CBF>is</color> called once per frame
</color>
<color=#3D8CBF>void</color> Update()
{
<color=#00FFFF>UnityEngine</color>.Profiling.Profiler.BeginSample("Test 1");
Test1();
<color=#00FFFF>UnityEngine</color>.Profiling.Profiler.EndSample();
<color=#00FFFF>UnityEngine</color>.Profiling.Profiler.BeginSample("Test 2");
Test2();
<color=#00FFFF>UnityEngine</color>.Profiling.Profiler.EndSample();
}
}
';
$subst = "\1\2";
$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