About the view submissions grid vs the csv export. In both cases we are manufacturing a DataTable object in code, in one case we then export tha table as csv, in the other we data bind to it, browsing submissions one at a time does not involve a DataTable. If you notice in the csv export the column names are actually q1, q2, q3... all we have done is write the question text into the first row of the data. On the submissions grid we try to replace the column names in the DataTable with the question text, otherwise you would only see them as the first row on the first page of results. However, there are limits to what you can use for a column name in a DataTable object, it will throw errors if you try to use something invalid or a duplicate of another column name. In that case we just swallow the error and leave the column name as it was q[x]. There is nothing that can be done to solve this.
I will look into adding the regex support for date questions in a future release.