6.71 Common Patterns

From help

6.71.1 string matching in list

See select-and-blank

test = {{"String1", "a"}, {"String2", "b"}, {"String3", "a"}, {"String4", "a"}}; 
Cases[test, {_String, "a"}] 
Out[281]= {{String1, a}, {String3, a}, {String4, a}} 
 
Select[test, MatchQ[#1, {_String, "a"}] & ] 
Out[282]= {{String1, a}, {String3, a}, {String4, a}}
 

6.71.2 how to find if one symbolic term starts with minus sign or not?

See given-a-symbolic-expression-how-to-find-if-starts-with-a-minus-or-not

Clear[x] 
p = (_.)*_?Negative; 
MatchQ[-3*x^2, p] 
Out[285]= True 
 
MatchQ[3*x^2, p] 
Out[286]= False 
 
expr = -3*x^2; 
(expr /. Thread[Variables[expr] -> 1]) < 0 
Out[288]= True 
 
expr = 3*x^2; 
(expr /. Thread[Variables[expr] -> 1]) < 0 
Out[290]= False