Context: Processes are central to the operation of many systems or organizations. Process-centric systems, ranging from enterprise workfow systems to open distributed service compositions, have significantly increased in number and complexity. Objective: Designers of process-centric systems can benefit from process abstractions ( including patterns) capturing and allowing the reuse of designs for frequent operational problems. Existing process patterns detection techniques have efficiency problems and difficulties to identify partial and inexact pattern instances. Method: We propose a process pattern detection technique based on a family of subgraph matching algorithms. The algorithms implement surjective graph morphism detection and a mechanism to incorporate semantic similarity computation for types and attributes of process graph elements. Results: Efficiency is addressed using simplified data structures, reducing the search space and its exploration. Match accuracy and time-complexity are demonstrated in an experimental study. Conclusions: Using process patterns allows business and technical processes to be provided as sharable service resources. Patterns can help to manage processes as configurable resources where a pattern can define a family of concrete customizable processes.