EDIT
lis = {1, {"AB", 2, 3}, {"ABC", 8, 9}, {"BC", 7}};
Select[ListQ@# && StringStartsQ[First@#, "AB"] &][#] &@lis
{{"AB", 2, 3}, {"ABC", 8, 9}}
ORIGINAL
As a test case, I have added an entry at the end:
lis = {1, {"AB", 2, 3}, {"ABC", 8, 9}, {"BC", 7}, {4, "CA"}};
Select lists: (Not necessary but for demo)
f = Cases[#, _List] &
Select lists with first String
element (This takes care of the element being a list too)
g = Cases[#, {k_String, x___}] &
First element (which is String) matches a pattern:
h[x_List] := Pick[x, StringMatchQ[First@x, "AB" ~~ ___]]
Execute:
h /@ g @ f@ lis
OR:
Composition[Map[h, #] &, g, f][lis]
OR:
h /@ g @* f @ lis
{{"AB", 2, 3}, {"ABC", 8, 9}}