input
        <w:r>
            <w:t>{{</w:t>
        </w:r>
        <w:proofErr w:type="spellStart"/>
        <w:r>
            <w:t>CreateDate</w:t>
        </w:r>
        <w:proofErr w:type="spellEnd"/>
        <w:r>
            <w:t>}}</w:t>
        </w:r>
        <w:r>
            <w:t>{{</w:t>
        </w:r>
        <w:proofErr w:type="spellStart"/>
        <w:r>
            <w:t>Text</w:t>
        </w:r>
        <w:proofErr w:type="spellEnd"/>
        <w:r>
            <w:t>}}</w:t>
        </w:r>
expect
        <w:r>
            <w:t>2022-09-20</w:t>
        </w:r>
        <w:r>
            <w:t>{{</w:t>
        </w:r>
        <w:proofErr w:type="spellStart"/>
        <w:r>
            <w:t>Text</w:t>
        </w:r>
        <w:proofErr w:type="spellEnd"/>
        <w:r>
            <w:t>}}</w:t>
        </w:r>
I tried pattern and C# code it will replace text between first `{{` and last `}}` not first `{{` and first `}}`
        <w:r>
            <w:t>2022-09-12</w:t>
        </w:r>
void Main()
{
    var input =@"        <w:r>
            <w:t>{{</w:t>
        </w:r>
        <w:proofErr w:type=""spellStart""/>
        <w:r>
            <w:t>CreateDate</w:t>
        </w:r>
        <w:proofErr w:type=""spellEnd""/>
        <w:r>
            <w:t>}}</w:t>
        </w:r>
        <w:r>
            <w:t>{{</w:t>
        </w:r>
        <w:proofErr w:type=""spellStart""/>
        <w:r>
            <w:t>Text</w:t>
        </w:r>
        <w:proofErr w:type=""spellEnd""/>
        <w:r>
            <w:t>}}</w:t>
        </w:r>";
    var output = Regex.Replace(input, @"\{\{.+CreateDate.+\}\}","2022-09-12", RegexOptions.Singleline
    | RegexOptions.IgnorePatternWhitespace
    | RegexOptions.CultureInvariant);
    Console.WriteLine(output);
}

