스택 오버플로우에서 답변이 달리지 않은 262,715개의 정규식 질문들은 무엇인가요?
정규표현식에서 보완(complement)과 교집합(intersection) 기능이 표준 엔진에 없지만, RE# 엔진은 이를 직접 지원하여 성능과 표현력을 크게 향상시켰습니다.
스택오버플로우의 26만 개 이상의 regex 질문을 분석한 결과, 보완과 교집합 관련 질문이 매우 많았으며, 기존의 lookaround 기반 해결책은 실행 시 비용이 크고 비효율적임이 확인되었습니다.
RE#는 보완과 교집합을 컴파일 시점에 처리하여 탐색 시간 비용을 없애고, 여러 조건을 단일 패스로 검사할 수 있어 기존 엔진 대비 수십 배에서 수백 배 빠른 성능을 보였습니다.
또한, lookahead는 실제 교집합 연산과 다르며, 일치하는 부분 문자열 내에서 여러 조건을 동시에 만족하는지 검사하는 RE#의 교집합과는 의미가 다릅니다.
기존 백트래킹 엔진들은 특정 패턴에서 비선형적 성능 저하와 보안 취약점(CWE-1333)을 겪는 반면, RE#와 같은 비백트래킹 엔진은 이러한 문제를 근본적으로 해결합니다.
흥미롭게도, 흔히 쓰이는 \d는 ASCII 숫자만이 아니라 유니코드 숫자까지 포함해, 의도치 않은 입력을 허용해 보안 문제를 일으킬 수 있음을 지적했습니다.
RE#는 40만 개 이상의 실제 정규식과 입력에 대해 러스트 regex와 비교 검증을 마쳤으며, 산업적 활용 가능성에 근접했다고 평가됩니다.
이번 연구는 정규표현식 엔진의 근본적 한계를 극복하고, 개발자들이 더 안전하고 효율적인 패턴 매칭을 구현할 수 있는 새로운 방향을 제시합니다.