3v4l.org

run code in 300+ PHP versions simultaneously
<?php $s = '123_abc____def'; var_dump( preg_replace_callback( '/\_+[a-zA-Z]{1}/e', function($matches){return '_' . strtoupper($matches[1]);}, $s) );

preferences:
65.86 ms | 402 KiB | 5 Q