(?=\w{5,}) means “is followed by at least 5 word characters” (word character refers to letters, digits, and underscore). (?=\D*\d+) means “is followed by 0 or more non-digits, followed by 1 or more digits”
Check out regex101.com for a handy tool on regular expressions.
So what your lookahead says is “find at least five letters, followed by any number of non-numeric, non-whitespace characters, followed by at least one number”. So this would pass banan1, banan-12, all sorts of things.
The first lookahead is exactly right: five or more. But the second one, (?=\D*\d+), has a couple small issues: do you WANT to allow (for example) punctuation? And how do you change that \d+ to handle two or more (hint: look at the FIRST lookahead, you’re already doing five or more!)
And banan1 should FAIL, but because your lookahead says “one or more decimal” (that’s what \d+ means), then it PASSES.
How do you change that from “one or more” to “two or more”?
And the regex tester that I’ve used is https://www.regextester.com/?fam=106060 (that’s with a working regex). Mousing over the various bits of the regex itself will tell you what that part of the expression actually means. I like that.