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