How to Use REGEXP_LIKE in Oracle
Last updated August 25, 2026 · By the SaturnSQL team
REGEXP_LIKE(string, pattern, match_param) is a WHERE condition for regex matching ('i' case-insensitive). It can't use a plain index; expect a table scan.
SELECT customer_id, email
FROM customers
WHERE REGEXP_LIKE(email, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$');Match parameters
The optional third argument sets the matching mode: 'i' for case-insensitive matching, 'm' to treat the string as multiple lines so ^ and $ match line boundaries, 'n' to let . match newlines, and 'x' to ignore whitespace in the pattern.
SELECT * FROM customers WHERE REGEXP_LIKE(company_name, '^acme', 'i');REGEXP_LIKE is a condition, not a function that returns a value, so it can't be selected directly as a column, only used to control logic: WHERE, HAVING, and CHECK clauses, or inside a CASE expression such as SELECT CASE WHEN REGEXP_LIKE(...) THEN 1 ELSE 0 END. It also can't use a plain B-tree index, since the engine has to evaluate the pattern against every row's actual value; a full table scan is normal unless you build a function-based index for a fixed pattern or add an Oracle Text index for heavier free-text search.
Run this in SaturnSQL
SaturnSQL is a browser-based SQL editor for teams: shared query library, schema-aware autocomplete, and scheduled exports to Google Sheets and Slack.
Try it free