I have a table similar to the following, in SQL Server 2016:

```
CREATE TABLE #SampleValues (TextID INT, Comment VARCHAR(MAX) )
INSERT INTO #SampleValues (TextID, Comment)
SELECT 1, 'user 1 has done crosswalk 99220 to 99215 and submitted' UNION
SELECT 2, 'got update that crossedwalked 99308 to 99221' UNION
SELECT 3, '99255 CROSSWALKED TO 99223' UNION
SELECT 4, 'proposed crosswalk 99219 to 99214 and clean' UNION
SELECT 5, 'tested and confiimed cross walked code from 99223 to 99255' UNION
SELECT 6, 'User 2 Crosswalked codes change 99254 to 99222' UNION
SELECT 7, 'User3cross walked code from 99232 to 99307'
SELECT 8, 'Updated to 99307'

```

Expected result will be like the screenshot below.  

[![enter image description here](https://i.stack.imgur.com/LnysH.png)](https://i.stack.imgur.com/LnysH.png)

The Comment values are expected to be in one of the following formats (not case sensitive). If it doesn’t follow these formats, expected result will be NULL

```
<some_pre-text>crossedwalked Number1 to Number2<some_post-text>
<some_pre-text>crosswalk Number1 to Number2<some_post-text>
<some_pre-text>crosswalk Number1 to Number2<some_post-text>
<some_pre-text>Crosswalked codes change Number1 to Number2<some_post-text>
<some_pre-text>cross walked code from Number1 to Number2<some_post-text>
<some_pre-text>cross walked code from Number1 to Number2<some_post-text>
<some_pre-text>Number1 CROSSWALKED TO Number2<some_post-text>

```

I found some simple examples of regular expressions – but didn’t find examples how to achieve these complex formats. Any thoughts on how to do this complex regex?