अधिकांश अक्षर और वर्ण बस आपस में मेल खाते हैं। हालाँकि, कुछ वर्ण ऐसे होते हैं जिन्हें मेटाएक्टेक्टर कहा जाता है, जो स्वयं से मेल नहीं खाते। इसके बजाय, वे संकेत देते हैं कि कुछ पैटर्न का मिलान किया जाना चाहिए, या वे नियमित अभिव्यक्ति के कुछ हिस्सों को दोहराते या बदलते हैं।
यहाँ मेटाकैरेक्टर की पूरी सूची है
. ^ $ * + ? { } [ ] \ | ( )
सबसे पहले हम [और] देखेंगे। उनका उपयोग एक चरित्र वर्ग को इंगित करने के लिए किया जाता है, जो कि वर्णों का एक समूह है जिसे आप मिलान करना चाहते हैं। वर्णों को अलग-अलग सूचीबद्ध किया जा सकता है, या वर्णों की एक श्रेणी को दो वर्ण देकर और उन्हें '-' से अलग करके दर्शाया जा सकता है। उदाहरण के लिए, [xyz] किसी भी वर्ण x, y, या z से मेल खाएगा; यह [x-z] जैसा ही है, जो वर्णों के समान सेट को व्यक्त करने के लिए एक श्रेणी का उपयोग करता है। यदि आप केवल छोटे अक्षरों का मिलान करना चाहते हैं, तो आपका रेगेक्स [a-z] होगा।
मेटाकैरेक्टर कक्षाओं के अंदर काम नहीं करते हैं। उदाहरण के लिए, [abc$] किसी भी वर्ण 'a', 'b', 'c', या '$' से मेल खाएगा; '$' एक मेटाकैरेक्टर है, लेकिन एक चरित्र वर्ग के अंदर इसकी विशेष प्रकृति को छीन लिया जाता है।
यदि किसी वर्ग के पहले वर्ण के रूप में '^' है तो इसका अर्थ उन सभी वर्णों से है जो इस वर्ग के नहीं हैं; उदाहरण के लिए, [^8] '8' को छोड़कर किसी भी वर्ण से मेल खाएगा।
शायद सबसे महत्वपूर्ण मेटाकैरेक्टर बैकस्लैश है, \। इसका उपयोग सभी मेटाएक्टैक्टर से बचने के लिए भी किया जाता है ताकि आप अभी भी पैटर्न में उनका मिलान कर सकें; उदाहरण के लिए, यदि आपको एक ] या \ से मिलान करने की आवश्यकता है, तो आप उनके विशेष अर्थ को हटाने के लिए बैकस्लैश से पहले कर सकते हैं:\] या \\।