fmincon is the local solver of choice for smooth problems. patternsearch is NOT guaranteed to get a global solution (no solver is). If fmincon and patternsearch are used on the same smooth problem and converge to nearby solutions, fmincon will generally be faster and more accurate.
If you suspect that your problem has multiple local minima, I suggest that you use MultiStart with fmincon as the local solver. The Global Optimization Toolbox documentation has plenty of examples. But for nonconvex problems there are no guarantees.
If your problem is not smooth, then patternsearch is often effective. But it is NOT a global solver.
MATLAB mathematical toolbox documentation