C++ GCCにおいて、括弧のエスケープが効かない


C++ GCC9.2.1において、以下のコードを実行したところ、trueが返ってきました。

[code]

    #include <regex>
    std::regex_search("2(a", std::regex("\([a-z]*\)")); //true
    
[/code]

私は(のエスケープに失敗しているのが原因だと思うのですが、何が原因なのでしょうか。  
解決方法等ありましたら教えてくださると嬉しいです。  
拙い質問で申し訳ありませんが、よろしくお願いします。




@metropolis さんのコメントの通り、バックスラッシュが足りていません。  
コンパイルオプションに`-Wall`を付け、警告を無視しない癖を付けましょう。

<https://godbolt.org/z/j9ExTbjEb>

[code]

    #include <regex>
    #include <iostream>
    
    int main()
    {
        std::cout << std::regex_search("2(a", std::regex("\([a-z]*\)")) << "\n"; // true
        std::cout << std::regex_search("2(a", std::regex("\\([a-z]*\\)")) << "\n"; // false
    }
    
[/code]

Compiler stderr:

[code]

    <source>: In function 'int main()':
    <source>:6:54: warning: unknown escape sequence: '\('
        6 |     std::cout << std::regex_search("2(a", std::regex("\([a-z]*\)")) << "\n"; // true
          |                                                      ^~~~~~~~~~~~
    <source>:6:54: warning: unknown escape sequence: '\)'
    
[/code]

