कुछ रेगुलर एक्सप्रेशन इंजन्स कैरेक्टर क्लासेस के भीतर कुछ फैंसी ऑपरेशन्स की अनुमति देते हैं। हम उन कैरेक्टर्स से मेल खा सकते हैं जो एक क्लास से संबंधित हैं लेकिन दूसरे से नहीं (सब्ट्रैक्शन); उन कैरेक्टर्स से मेल खा सकते हैं जो एक क्लास और दूसरे दोनों से संबंधित हैं (इंटरसेक्शन), या उन कैरेक्टर्स से मेल खा सकते हैं जो कई क्लासेस में से किसी से संबंधित हैं (यूनियन)।
पायथन में re मॉड्यूल हमें AND ऑपरेटर && का उपयोग करके कैरेक्टर क्लास के भीतर कई क्लासेस के इंटरसेक्शन को निर्दिष्ट करने की अनुमति देता है: […&&[…]] एक कैरेक्टर क्लास निर्दिष्ट करता है जो दो सब-क्लासेस के इंटरसेक्शन को दर्शाता है—अर्थात क्लास द्वारा मिलान किया गया कैरेक्टर दोनों सब-क्लासेस से संबंधित होना चाहिए। उदाहरण के लिए, [\S&&[\D]] एक कैरेक्टर निर्दिष्ट करता है जो नॉन-व्हाइटस्पेस कैरेक्टर और नॉन-डिजिट दोनों है।
पायथन के re मॉड्यूल में कैरेक्टर क्लास सब्ट्रैक्शन
उदाहरण के लिए, क्लास
[a-z--[aeiou]] एक अंग्रेजी लोअरकेस कॉन्सोनेंट से मेल खाता है।
इसके अलावा, जब घटाया गया क्लास रेंज शामिल नहीं करता है, तो उसके ब्रैकेट्स वैकल्पिक हैं। उपरोक्त को [a-z--aeiou] के रूप में भी लिखा जा सकता है।
पायथन के re मॉड्यूल में कैरेक्टर क्लास यूनियन
पायथन के re मॉड्यूल में, कई कैरेक्टर क्लासेस का यूनियन बनाने के लिए, हम OR ऑपरेटर || का उपयोग करते हैं। उदाहरण के लिए, [0||[^\W\d]] एक कैरेक्टर निर्दिष्ट करता है जो या तो 0 है या एक वर्ड कैरेक्टर है जो डिजिट नहीं है।