I have been toying with Brainf*ck too and here are my comments about this particular interpretation:
I really don't like the '#' operator. It is against the Brainf*ck nature. Brainf*ck is supposed to be difficult to write and making the coding tools like '#' available is going to make Brainf*ck way too easy to program. Imagine all these 13-year-olds coding Brainf*ck straight after they have grasped Basic... definately something we do not want. Brainf*ck has been a language for those elite few who have enough stupidity and stubborness to spend about an hour to write a simple Hello, World!. Brainf*ck has been the language of die-hard brainfuckers like me since 1993 and the whole purpose of the language is that it should be difficult to write in. Dumping the memory array is for wimps. Next you will want a simple way to reset the whole memory array...oh wait... you HAVE done this with '~' operator... Where is the world coming to?
- The '~' operator also is useless and just adds syntactic sugar and makes the language more complicated than it should be. I mean you can easily erase the contents of the memory cell by a simple [-] so there is no need to reinvent the wheel especially when tools in the Brainf*ck language are available itself and there is no need to add these new features. Again, it makes programming Brainf*ck way too easy...
- No support for nested loops. This is a big one. As far as I can see there is no support for nested loops in your implementation (or am I wrong?). Nesting loops within loops and trying to remember where the loop counters are and *NOT* being able to print the memory array is the sort of thing that makes Brainf*ck the language fun for real programmers.
OK, enough ranting. Good job! ;)