The Contains() function takes the 2nd argument and looks into the 1st argument to see if the 2nd argument's value can be found in the first argument. Therefore, if the Contains() function is
Contains("A_B_C", Col_List[i])
and the value of Col_List[i] = "A_B_C" it will take the value "A_B_C" and look into the first arguement to see if it can be found. Which it can, because the first arguement contains "A_B_C". Now if the column name is "A", and you do the same comparison, the Contains() function will take the 2nd arguement, "A" and look into the 1st arguement, "A_B_C" and it will find that an "A" is in the first arguement, and therefore it will be a true comparison.
Thus, the original form of the Contains() function is what is wanted
Names Default To Here( 1 );
dt = Current Data Table();
Col_List = dt << Get Column Names("String");
for(i = 1, i <= N Items(Col_List),i++,
If(Contains(Col_List[i], "A_B_C"),
Column(Col_List[i]) << Set Selected(1);
);
);
Jim