Lyric discussion by AmeliaLH 

I can't explain every lyric but I really think that this song is about him taking the virginity of the girl in the bedouin patterned dress.

First it is set in his youth and he is stealing and the only thing he regretted was being punished. He looks back as to how things he took were returned (and he doesn't say by him which I think is significant) and I think this is up until the point this line is true until the siren/this beautiful girl he can't resist drives him over the stern, so most likely back into taking things.

Then he talks about her gleaming white, white being a classic sign of purity and virginity and he says he will never forget her so I'm guessing that's why.

I'm not really sure where Innisfree and a bedouin patterned dress comes into this. I was kind of thinking that this was him saying she really stuck out to him from anyone else there because the imagery one might think of when they hear Innisfree really contrasts a typical geometric bedouin pattern and if she was from anywhere in the middle east she would've been very different looking than anyone on an island in Ireland which maybe shows that this was just lust, which goes along with the theme of him taking things. I think how he talks of her now, never being able to forget her is a lot more in the tone of regret now as he looks back then how he would've talked about her at the time.

Does anyone think this a legitimate interpretation?

I can agree with your interpretation, if you go with it that way I'm not sure how he could return virginity, but I guess apologizing for his actions could be what he meant. The girl(s)are the siren, and he saw them and was attracted, and slpet with them, or was just attracted to them. Being at innisfree would be to be in a place where he was happy. The dress I agree could be purity, there was one girl he either didn't sleep with, or only one he was in love with, but she didn't know, or didn't want him...

@AmeliaLH Why do you think the person in the bedouin dress was female?

An error occured.