Regex ((pre1)|pre2)?(?(1)\s)(?<!notallowed )main word(?(2)-appendix1) This will match pre1 main word-appendix1 pre2 main word main word It will not match notallowed main word