[^X] means any character other than X, so [^X]* matches zero or more of any characters, so long as none of them are X.
Ah my bad! I did misinterpret [^X] as X or the line-start.
Ah my bad! I did misinterpret [^X] as X or the line-start.