Emacs' string model is quite different to anything else I've experienced. They're mutable ropes that can also store arbitrary attributes.