We consider the class of conditional graph patterns (CGPs) that allow user to query data graphs with complex patterns that contain negation and predicates. To overcome the prohibitive cost of subgraph isomorphism, we consider matching of CGPs under simulation semantics which can be conducted in quadratic time. In emerging applications, one would like to reduce more this matching time, and the static analysis of patterns may allow ensuring part of this reduction. We study the containment problem of CGPs that aims to check whether the matches of some pattern P1, over any data graph, are contained in those of another pattern P2 (written P1 ⊑ P2). The optimization process consists to extract matches of P1 only from those of P2 without querying the (possibly large) data graph. We show that the traditional semantics of containment is decidable in quadratic time, but it fails to meet the optimization goal in the presence of negation and predicates. To overcome this limit, we propose a new semantics of containment, called strong containment, that is more suitable for CGPs and allows to reduce their matching time. We show that strong containment can be decided in cubic time by providing such an algorithm. We are planing to use results of this paper to answer CGPs using views. This paper is part of an ongoing project that aims to design a caching system for complex graph patterns.