Pip, I wouldn't beat myself up over it. You tried your best to give it back and it's not as if you deliberately stole the money or as if it were a large amount. It was the cashier's fault, not yours. And while I feel for her/him if he/she has to make up the difference, maybe they'll learn to be more careful in the future.
However, if your conscience is still pinching, then by all means, bring it back today or give it to charity as PPs have suggested.
About finding money in the street - it's very hard to find the owner, usually, so I can understand if someone just takes it. More noble to put it in a charity box, of course, or keep it but send a check in that amount to the charity of your choice. You (general) could just leave it there, of course, on the chance that the person who lost it will come back to look for it. I did that, once, when I was very young, but later realize it's more likely that someone else just picked it up.