If the character index position in the string is always the same
$str = '55. 1 # 2 AKSPI O ';
$a = $str[10]
Else, it would depend on how exact you need your patter to be.
Alwys match the first letter, regardless of what comes before it. The letter can even be the first character of the string
# Match zero, one or more non-alpha characters, followed by an alpha character.
# \K resets the capturing to start at this point, so whatever was matched before it
# (non-letters) is discarded and the first captured is a letter
$p = '#[^[:alpha:]]*\K[[:alpha:]]#';
Match first letter but only if there is at least on other non letter character before it.
$p = '#[^[:alpha:]]*\K[[:alpha:]]#';
Match, in this order
1 or more digits
.
1 or more white spaces
1 digit
1 or more whitespaces
#
1 or more whitespaces
1 of digits 1 to 9 (0 excluded)
1 or more whitespaces
(reset capturing to begin here)
letter
$p = '/\d+\.\s+\d\s+#\s+[1-9]\s+\K[[:alpha:]]/';
And it can be made more precise if you know that there is only ever 1 whitespace (or 2, or 3) and not any number of whitespaces.