문자열의 모양을 기술하기
패턴은 고정된 문자와 여러 가능성을 나타내는 기호를 결합한다. 예를 들어 연속된 숫자나 특정 접두사로 시작하는 구간을 찾을 수 있다.
패턴 안의 점과 괄호 같은 기호는 특별한 뜻을 가질 수 있다. 기호 자체를 찾으려면 이스케이프가 필요하며, 프로그래밍 언어 문자열에 넣을 때 한 단계의 처리가 더 생길 수 있다.
검색과 전체 검증
문자열 어딘가에 패턴과 맞는 일부가 있다는 사실과 문자열 전체가 원하는 형식이라는 사실은 다르다. 사용하는 함수와 경계 조건에 따라 결과가 달라진다.
이메일이나 날짜처럼 의미 규칙이 있는 값은 모양 검사가 전부가 아니다. 달력에 존재하는 날짜인지와 실제로 접근 가능한 주소인지 등은 추가 검증이 필요할 수 있다.
탐욕성과 그룹
반복은 가능한 길게 또는 짧게 맞추도록 지정할 수 있으며, 그룹은 구간을 묶고 일부를 추출하는 데 쓰인다. 결과는 엔진의 탐색 규칙과 패턴 구조에 영향을 받는다.
역참조와 둘러보기 등 확장 기능의 지원은 엔진마다 다르다. 수학적 정규언어의 정의와 실무에서 정규식이라 부르는 모든 확장 기능이 정확히 같은 범위는 아니다.
성능과 적절한 파서
일부 백트래킹 엔진에서는 중첩된 반복과 특정 입력이 매우 많은 탐색을 만들 수 있다. 외부 입력을 처리할 때는 길이 제한과 엔진의 특성을 고려해야 한다.
중첩된 HTML이나 프로그래밍 언어의 구조 전체를 일반적인 정규식 하나로 처리하려 하면 경계 조건에서 실패하기 쉽다. 구조가 정의된 데이터에는 전용 파서를 사용하고 정규식은 적절한 문자열 작업에 적용한다.