If I know the correct format of fields, should I create check constraints for all of those fields, or will this affect the performance of inserts/updates too much? Would it be a good idea to use regular expressions for complex rules, or should I only use simple constraints like case and length?
The fields are already being validated at the application level.
In general it is best not to trust the application and use the check constraints. The data must maintain integrity (who knows what rogue script may run, or what program bug may slip through).
However, if you have many complex check constraints and you notice an insert/update slowdown, you may want to reevaluate. Is it really necessary to have one on every field? No. The column data type and length act as constraints too.