Take this regular expression: /^[^abc]/. This will match any single character at the beginning of a string, except a, b, or c.
If you add a *
If you're looking to capture everything up to "abc":
/^(.*?)abc/
Explanation:
( ) capture the expression inside the parentheses for access using $1, $2, etc.
^ match start of line
.* match anything, ? non-greedily (match the minimum number of characters required) - [1]
[1] The reason why this is needed is that otherwise, in the following string:
whatever whatever something abc something abc
by default, regexes are greedy, meaning it will match as much as possible. Therefore /^.*abc/ would match "whatever whatever something abc something ". Adding the non-greedy quantifier ? makes the regex only match "whatever whatever something ".