یک نکته ی جالب در مورد RegEx، قابلیت ایجاد شرط برای اون هست.
شرط ها رو میشه با تکنیک های backreference و lookaround استفاده کرد.
به عنوان مثالی برای حالت backreference:
(<[Aa]\s+[^>]+>\s*)?(?(1)\s*</[Aa]>)
عبارت (۱)? به عبارت محصور شده در اولین پرانتز مراجعه و مشخص می کنه در صورتی که تگ A با هر مخلفاتی پیدا شد، تگ <A/> برای اون معنا پیدا می کنه. به عبارت دیگه، تنها در صورتی وجود یک تگ پایانی بررسی میشه که تگ شروع A برای اون وجود داشته باشه.
این از IF ما! قسمت ELSE هم می تونه وجود داشته باشه.
مثال قبل با در نظر گرفتن ELSE:

(<[Aa]\s+[^>]+>\s*)?(?(1)\s*</[Aa]>|salam)
در صورتی که تگ A کاملی وجود داشت اون رو پیدا کن در غیر اینصورت به دنبال عبارت salam بگرد…