I don't see any difference in the gdb start-up text. "list main" doesn't work in either binary. 'cgdb' is able to display main() in the non-regex binary, but not in the regex binary.
If you are inside the standard library, to show it's sources you need to tell gdb where to find the standard library sources or use the rust-gdb wrapper that ships with gdb to do this for you. You also need to install the standard library sources using rustup component add rust-src.
If list shows /rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/core/src/iter/traits/collect.rs as location, that means that you are currently inside a function defined by the standard library. You can use up to change focus to the caller. (call as many times as you need to get back to your own code)
RUST_GDB=cgdb rust-gdb may work if cgdb accepts the same arguments as gdb. The RUST_GDB env var defines which command to invoke in the place of gdb.