I like @txnelson's approach. I often use it. The character functions are handy!
Here is another approach using Regex() instead. It is not a solution. It is an illustration of how you might parse each string. I show two search patterns, but other patterns are possible. I wonder which way is faster, as it might be a consideration with many strings.
Names Default to Here( 1 );
string = { "[CDO600705010]", "[S 88ABCV A B IT]", "[C23204348IT]" };
n = N Items( string );
For( s = 1, s <= n, s++,
Show(
Regex( string[s], "([\w\d\s]+)", "\1" );
);
);
For( s = 1, s <= n, s++,
Show(
Regex( string[s], "[^\-[\]]+" );
);
);