3v4l.org

run code in 300+ PHP versions simultaneously
<?php $tests = ['âa', 'Bbbbb', 'Éé', 'iou', 'Δδ']; foreach ($tests as $test) { echo "\n{$test}:"; echo "\n\tPREG: " , preg_match('~^\p{Lu}~u', $test) ? 'upper' : 'lower'; echo "\n\tCTYPE: " , ctype_upper(mb_substr($test, 0, 1)) ? 'upper' : 'lower'; echo "\n\t< a: " , mb_substr($test, 0, 1) < 'a' ? 'upper' : 'lower'; $chr = mb_substr ($test, 0, 1, "UTF-8"); echo "\n\tMB: " , mb_strtoupper($chr, "UTF-8") == $chr ? 'upper' : 'lower'; }
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
âa: PREG: lower CTYPE: lower < a: lower MB: lower Bbbbb: PREG: upper CTYPE: upper < a: upper MB: upper Éé: PREG: upper CTYPE: lower < a: lower MB: upper iou: PREG: lower CTYPE: lower < a: lower MB: lower Δδ: PREG: upper CTYPE: lower < a: lower MB: upper

preferences:
102.14 ms | 404 KiB | 225 Q