Usually when there is a difference between Reflector's representation and what I think it should be - I use ILDasm. I think the integer problems can be fixed by what Jon and najmeddine said. The strings are alittle harder (like the copyright attribute value and your regular expression string).
String constants (things in quotes in your source code) are stored as unicode byte sequences in the binary file (in either the blob or user strings heaps). You can see exactly what is in your binary by using ILDasm if you do the following:
0. Load your assembly in ILDasm
1. View->Meta Info check Raw:Heaps
2. View->Meta Info click Show!
If if you do a search for "copyright" it will mostlikely be in the blob heap (attribute values use a different serialization to bytes and are in the blob heap with other binary values) and for you RegEx string it should be in the user strings heap.
Once you've looked at the value in ILDasm, you see what is actually in the assembly ... if there is a difference between that and what Reflector shows ... chances are Reflector is doing a best effort decoding of a binary string to escape non readable characters into a more readable format. Since there are several possible encodings/decodings Reflecor sometimes shows a valid string - but just not decoded correctly (like the \x27 anc \x22 decodings for ' and ").
So in short, your values haven't changed in the assembly (most likely) it is just Reflector is not decoding it correctly into the original string.