3v4l.org

run code in 300+ PHP versions simultaneously
<?php $string = 'aaAAąAŚĆżź'; echo preg_replace_callback( '/(\p{Lu})|(\p{Ll})/u', function($m) { return $m[1] ? mb_strtolower($m[1]) : mb_strtoupper($m[2]); }, $string );

preferences:
62.21 ms | 402 KiB | 5 Q