How can I make the following regex ignore case sensitivity? It should match all the correct characters but ignore whether they are lower or uppercase.
G[a-b].*
For documentation purposes, I would like to note that the regular expression shown above, G[a-b].*
, has the following meaning in English:
First, match a letter
G
Secondly, match a letter
a
or match a letterb
Thirdly, match match zero or more of any character. The dot (
.
) matches any character, and an asterisk*
means match zero or more of the proceeding pattern.
Assuming you want the whole regex to ignore case, you should look for the i
flag. Nearly all regex engines support it:
/G[a-b].*/i
string.match("G[a-b].*", "i")
Check the documentation for your language/platform/tool to find how the matching modes are specified.
If you want only part of the regex to be case insensitive (as my original answer presumed), then you have two options:
Use the (?i)
and [optionally] (?-i)
mode modifiers:
(?i)G[a-b](?-i).*
Put all the variations (i.e. lowercase and uppercase) in the regex - useful if mode modifiers are not supported:
[gG][a-bA-B].*
One last note: if you're dealing with Unicode characters besides ASCII, check whether or not your regex engine properly supports them.