В скобках ^
означает «начало», но сразу после [
это означает «инвертировать весь класс». /[^0-9]/
будет соответствовать всему, что содержит не цифру. Регулярное выражение для соответствия одной цифре будет:
/^[0-9]$/
PHP уже имеет функцию для этого, однако: is_numeric()
if ( is_numeric( substr( $stringArray[$i],0,1 ) ) ) { do stuff }
Если вы хотите пройти маршрут регулярного выражения, вам не нужно будет получать первого персонажа. Регулярное выражение, которое соответствует всему, что начинается с цифры, будет:
if ( preg_match( '/^[0-9]/', $stringArray[$i] ) ) { do stuff }