exreg gem'i, Ruby için geliştirilmiş, Unicode destekli, tamamen Ruby ile yazılmış yeni bir düzenli ifade motorudur. Ruby'nin mevcut düzenli ifade motoru Onigmo ile neredeyse aynı işlevselliği sunsa da, en önemli farkı Thompson tarzı bir NFA (Nondeterministic Finite Automaton) sanal makinesi kullanmasıdır. Bu yaklaşım sayesinde exreg, felaket geri izleme (catastrophic backtracking) nedeniyle ortaya çıkan ReDoS (Regular Expression Denial of Service) saldırılarına karşı bağışıktır. Geleneksel geri izleme motorları, belirli girdilerde üstel zaman karmaşıklığına sahip olabilirken, Thompson tarzı NFA motorları tüm olası yolları paralel olarak simüle ederek doğrusal zaman karmaşıklığı sağlar. Bu, performansın girdi boyutuna göre öngörülebilir ve kontrol edilebilir olmasını garanti eder.
exreg'in mimarisi, düzenli ifade desenini soyut sözdizimi ağacına (AST) dönüştüren bir ayrıştırıcı, AST'yi özel bir sanal makine için bayt koduna derleyen bir derleyici ve bu bayt kodunu çalıştıran sanal makineden oluşur. Unicode desteği için, gem yüklendiğinde indirilen Unicode Karakter Veritabanı (UCD) dosyalarından ikili bir veritabanı oluşturan bir rake görevi bulunur. Bu veritabanı, bellek içi ofsetler tutarken, gerçek kod noktası kümelerini yalnızca talep üzerine yükler. Bu verimli yükleme için özel, kompakt bir ikili format geliştirilmiştir. Derleme sürecinde USet nesneleri, Unicode kod noktalarının büyük kümelerini verimli bir şekilde temsil etmek ve küme işlemleri yapmak için kullanılırken, bayt kodu oluşturulduğunda ByteSet nesneleri tek tek bayt eşleşmelerini kontrol etmek için devreye girer.
Bu yeni düzenli ifade motoru, Ruby uygulamalarında ReDoS saldırılarına karşı önemli bir güvenlik katmanı sağlayarak performansı daha öngörülebilir hale getiriyor.