If you have comma at the end then either remove comma via StrTrim or start at -2
instead of -1
(since you iterate backwards).
Why does it not show results if there are comma at start?
Because you have said so via this part of loop statement
( sym = StrExtract( T_string2, item ) ) != "";
So it iterates until there is empty string. And since empty substring is at start already it stops there and you have empty output entirely.
So change to either like this
T_string2 = ",FFEF,FFFF,FAIA,EFEF,FAAE,ES,FAAI,OFAA,FFAO,FAAF,EAIA,";
for( item = -2; ( sym = StrExtract( T_string2, item ) ) != ""; item-- )
{
printf( "here is the value sym %s\n", sym );
}
or to this one
T_string2 = ",FFEF,FFFF,FAIA,EFEF,FAAE,ES,FAAI,OFAA,FFAO,FAAF,EAIA,";
str_trim = StrTrim(T_string2, ",");
for( item = -1; ( sym = StrExtract( str_trim, item ) ) != ""; item-- )
{
printf( "here is the value sym %s\n", sym );
}
Also you had incorrect format specifier.
%g
is for number output
For string output you have to use %s
.
If all is fixed then you will get

Also you may do like so
T_string2 = ",FFEF,FFFF,FAIA,EFEF,FAAE,ES,FAAI,OFAA,FFAO,FAAF,EAIA,";
length = StrCount(T_string2, ",");
for( item = length; item > -1; item-- )
{
printf( "here is the value sym %s\n", StrExtract(T_string2, item) );
}
Then it does not stop and prints empty string

or like so to ignore empty
T_string2 = ",FFEF,FFFF,FAIA,EFEF,FAAE,ES,FAAI,OFAA,FFAO,FAAF,EAIA,";
T_string2 = StrTrim(T_string2, ",");
length = StrCount(T_string2, ",");
for( item = length; item > -1; item-- )
{
printf( "here is the value sym %s\n", StrExtract(T_string2, item) );
}

Or iterating forward and setting item negative in StrExtract.
T_string2 = ",FFEF,FFFF,FAIA,EFEF,FAAE,ES,FAAI,OFAA,FFAO,FAAF,EAIA,";
T_string2 = StrTrim(T_string2, ",");
length = StrCount(T_string2, ",")+1;
for( item = 1; item <= length; item++ )
{
printf( "here is the value sym %s\n", StrExtract(T_string2, -item) );
}