文字列の左右から英数字以外の記号をすべて削除し、文字列の中央にある記号を残します。
ここで同様の質問をしましたが、良い解決策は次のとおりです。
$str = preg_replace('/^\W*(.*\w)\W*$/', '$1', $str);
ただし、ąĄćĆęĘ などの記号も削除されますが、アルファベット記号のままではいけません。
上記の例は次のようになります。
~~AAA~~ => AAA (OK)
~~AA*AA~~ => AA*AA (OK)
~~ŚAAÓ~~ => AA (BAD)