Labeled graphs are used to represent entities and their relationships in a plethora of Web applications. Graph pattern matching is a fundamental operation for the analysis and exploration of data graphs. In this paper, we address the problem of efficiently finding homomorphic matches for hybrid patterns, where each edge may be mapped either to an edge or to a path, thus allowing for higher expressiveness and flexibility in query formulation. We design a novel holistic graph simulation-based algorithm, called GraphMatch-Sim, which leverages simulation to precisely identify, in advance, all the graph nodes that participate in the pattern matches returned. GraphMatch-Sim can flexibly employ any reachability index as a plug-in component. Unlike existing methods, it produces no redundant intermediate results, thus achieving worst-case optimality. An extensive experimental evaluation on both real and synthetic datasets shows that our method evaluates hybrid patterns orders of magnitude faster than existing algorithms and has much better scalability.